﻿// MT506




using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category5
{
  public class MT506 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagDefinition U0003;
    private static SwiftTagSubItemDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagDefinition U0008;
    private static SwiftTagSubItemDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagDefinition U0010;
    private static SwiftTagSubItemDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagSequenceDefinition U0014;
    private static SwiftTagDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagDefinition U0017;
    private static SwiftTagSubItemDefinition U0018;
    private static SwiftTagSubItemDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagDefinition U001E;
    private static SwiftTagSubItemDefinition U001F;
    private static SwiftTagSubItemDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagDefinition U0081;
    private static SwiftTagSubItemDefinition U0082;
    private static SwiftTagSubItemDefinition U0083;
    private static SwiftTagDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagChoiceDefinition U0087;
    private static SwiftTagDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagSubItemDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagSubItemDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagSubItemDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagChoiceDefinition U009A;
    private static SwiftTagDefinition U009B;
    private static SwiftTagSubItemDefinition U009C;
    private static SwiftTagSubItemDefinition U009D;
    private static SwiftTagSubItemDefinition U009E;
    private static SwiftTagDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagChoiceDefinition U0003U0002;
    private static SwiftTagDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagSubItemDefinition U0006U0002;
    private static SwiftTagDefinition U0007U0002;
    private static SwiftTagSubItemDefinition U0008U0002;
    private static SwiftTagSubItemDefinition U000EU0002;
    private static SwiftTagDefinition U000FU0002;
    private static SwiftTagSubItemDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagDefinition U0013U0002;
    private static SwiftTagSubItemDefinition U0014U0002;
    private static SwiftTagSubItemDefinition U0015U0002;
    private static SwiftTagSequenceDefinition U0016U0002;
    private static SwiftTagDefinition U0017U0002;
    private static SwiftTagSubItemDefinition U0018U0002;
    private static SwiftTagChoiceDefinition U0019U0002;
    private static SwiftTagDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagSubItemDefinition U001CU0002;
    private static SwiftTagDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagSubItemDefinition U001FU0002;
    private static SwiftTagSubItemDefinition U007FU0002;
    private static SwiftTagDefinition U0080U0002;
    private static SwiftTagSubItemDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSequenceDefinition U0088U0002;
    private static SwiftTagDefinition U0089U0002;
    private static SwiftTagSubItemDefinition U008AU0002;
    private static SwiftTagChoiceDefinition U008BU0002;
    private static SwiftTagDefinition U008CU0002;
    private static SwiftTagSubItemDefinition U008DU0002;
    private static SwiftTagSubItemDefinition U008EU0002;
    private static SwiftTagDefinition U008FU0002;
    private static SwiftTagSubItemDefinition U0090U0002;
    private static SwiftTagSubItemDefinition U0091U0002;
    private static SwiftTagDefinition U0092U0002;
    private static SwiftTagSubItemDefinition U0093U0002;
    private static SwiftTagSubItemDefinition U0094U0002;
    private static SwiftTagSubItemDefinition U0095U0002;
    private static SwiftTagDefinition U0096U0002;
    private static SwiftTagSubItemDefinition U0097U0002;
    private static SwiftTagSubItemDefinition U0098U0002;
    private static SwiftTagSubItemDefinition U0099U0002;
    private static SwiftTagSubItemDefinition U009AU0002;
    private static SwiftTagChoiceDefinition U009BU0002;
    private static SwiftTagDefinition U009CU0002;
    private static SwiftTagSubItemDefinition U009DU0002;
    private static SwiftTagSubItemDefinition U009EU0002;
    private static SwiftTagDefinition U009FU0002;
    private static SwiftTagSubItemDefinition U0001U0003;
    private static SwiftTagSubItemDefinition U0002U0003;
    private static SwiftTagSubItemDefinition U0003U0003;
    private static SwiftTagSubItemDefinition U0004U0003;
    private static SwiftTagSequenceDefinition U0005U0003;
    private static SwiftTagDefinition U0006U0003;
    private static SwiftTagSubItemDefinition U0007U0003;
    private static SwiftTagDefinition U0008U0003;
    private static SwiftTagSubItemDefinition U000EU0003;
    private static SwiftTagSubItemDefinition U000FU0003;
    private static SwiftTagSubItemDefinition U0010U0003;
    private static SwiftTagSubItemDefinition U0011U0003;
    private static SwiftTagDefinition U0012U0003;
    private static SwiftTagSubItemDefinition U0013U0003;
    private static SwiftTagDefinition U0014U0003;
    private static SwiftTagSubItemDefinition U0015U0003;
    private static SwiftTagSequenceDefinition U0016U0003;
    private static SwiftTagDefinition U0017U0003;
    private static SwiftTagSubItemDefinition U0018U0003;
    private static SwiftTagDefinition U0019U0003;
    private static SwiftTagSubItemDefinition U001AU0003;
    private static SwiftTagSubItemDefinition U001BU0003;
    private static SwiftTagChoiceDefinition U001CU0003;
    private static SwiftTagDefinition U001DU0003;
    private static SwiftTagSubItemDefinition U001EU0003;
    private static SwiftTagSubItemDefinition U001FU0003;
    private static SwiftTagSubItemDefinition U007FU0003;
    private static SwiftTagDefinition U0080U0003;
    private static SwiftTagSubItemDefinition U0081U0003;
    private static SwiftTagSubItemDefinition U0082U0003;
    private static SwiftTagDefinition U0083U0003;
    private static SwiftTagSubItemDefinition U0084U0003;
    private static SwiftTagSubItemDefinition U0086U0003;
    private static SwiftTagChoiceDefinition U0087U0003;
    private static SwiftTagDefinition U0088U0003;
    private static SwiftTagSubItemDefinition U0089U0003;
    private static SwiftTagSubItemDefinition U008AU0003;
    private static SwiftTagDefinition U008BU0003;
    private static SwiftTagSubItemDefinition U008CU0003;
    private static SwiftTagSubItemDefinition U008DU0003;
    private static SwiftTagDefinition U008EU0003;
    private static SwiftTagSubItemDefinition U008FU0003;
    private static SwiftTagSubItemDefinition U0090U0003;
    private static SwiftTagSubItemDefinition U0091U0003;
    private static SwiftTagDefinition U0092U0003;
    private static SwiftTagSubItemDefinition U0093U0003;
    private static SwiftTagSubItemDefinition U0094U0003;
    private static SwiftTagDefinition U0095U0003;
    private static SwiftTagSubItemDefinition U0096U0003;
    private static SwiftTagSubItemDefinition U0097U0003;
    private static SwiftTagDefinition U0098U0003;
    private static SwiftTagSubItemDefinition U0099U0003;
    private static SwiftTagSubItemDefinition U009AU0003;
    private static SwiftTagSubItemDefinition U009BU0003;
    private static SwiftTagChoiceDefinition U009CU0003;
    private static SwiftTagDefinition U009DU0003;
    private static SwiftTagSubItemDefinition U009EU0003;
    private static SwiftTagSubItemDefinition U009FU0003;
    private static SwiftTagDefinition U0001U0004;
    private static SwiftTagSubItemDefinition U0002U0004;
    private static SwiftTagSubItemDefinition U0003U0004;
    private static SwiftTagSubItemDefinition U0004U0004;
    private static SwiftTagSubItemDefinition U0005U0004;
    private static SwiftTagSubItemDefinition U0006U0004;
    private static SwiftTagDefinition U0007U0004;
    private static SwiftTagSubItemDefinition U0008U0004;
    private static SwiftTagSubItemDefinition U000EU0004;
    private static SwiftTagSequenceDefinition U000FU0004;
    private static SwiftTagDefinition U0010U0004;
    private static SwiftTagSubItemDefinition U0011U0004;
    private static SwiftTagDefinition U0012U0004;
    private static SwiftTagSubItemDefinition U0013U0004;
    private static SwiftTagSubItemDefinition U0014U0004;
    private static SwiftTagSubItemDefinition U0015U0004;
    private static SwiftTagSubItemDefinition U0016U0004;
    private static SwiftTagDefinition U0017U0004;
    private static SwiftTagSubItemDefinition U0018U0004;
    private static SwiftTagSubItemDefinition U0019U0004;
    private static SwiftTagSubItemDefinition U001AU0004;
    private static SwiftTagDefinition U001BU0004;
    private static SwiftTagSubItemDefinition U001CU0004;
    private static SwiftTagSubItemDefinition U001DU0004;
    private static SwiftTagSubItemDefinition U001EU0004;
    private static SwiftTagSubItemDefinition U001FU0004;
    private static SwiftTagDefinition U007FU0004;
    private static SwiftTagSubItemDefinition U0080U0004;
    private static SwiftTagSubItemDefinition U0081U0004;
    private static SwiftTagDefinition U0082U0004;
    private static SwiftTagSubItemDefinition U0083U0004;
    private static SwiftTagSequenceDefinition U0084U0004;
    private static SwiftTagDefinition U0086U0004;
    private static SwiftTagSubItemDefinition U0087U0004;
    private static SwiftTagDefinition U0088U0004;
    private static SwiftTagSubItemDefinition U0089U0004;
    private static SwiftTagSubItemDefinition U008AU0004;
    private static SwiftTagDefinition U008BU0004;
    private static SwiftTagSubItemDefinition U008CU0004;
    private static SwiftTagSubItemDefinition U008DU0004;
    private static SwiftTagSubItemDefinition U008EU0004;
    private static SwiftTagSubItemDefinition U008FU0004;
    private static SwiftTagDefinition U0090U0004;
    private static SwiftTagSubItemDefinition U0091U0004;
    private static SwiftTagSubItemDefinition U0092U0004;
    private static SwiftTagDefinition U0093U0004;
    private static SwiftTagSubItemDefinition U0094U0004;
    private static SwiftTagSubItemDefinition U0095U0004;
    private static SwiftTagSubItemDefinition U0096U0004;
    private static SwiftTagChoiceDefinition U0097U0004;
    private static SwiftTagDefinition U0098U0004;
    private static SwiftTagSubItemDefinition U0099U0004;
    private static SwiftTagSubItemDefinition U009AU0004;
    private static SwiftTagSubItemDefinition U009BU0004;
    private static SwiftTagSubItemDefinition U009CU0004;
    private static SwiftTagDefinition U009DU0004;
    private static SwiftTagSubItemDefinition U009EU0004;
    private static SwiftTagSubItemDefinition U009FU0004;
    private static SwiftTagSubItemDefinition U0001U0005;
    private static SwiftTagSubItemDefinition U0002U0005;
    private static SwiftTagSubItemDefinition U0003U0005;
    private static SwiftTagSubItemDefinition U0004U0005;
    private static SwiftTagDefinition U0005U0005;
    private static SwiftTagSubItemDefinition U0006U0005;
    private static SwiftTagSequenceDefinition U0007U0005;
    private static SwiftTagDefinition U0008U0005;
    private static SwiftTagSubItemDefinition U000EU0005;
    private static SwiftTagDefinition U000FU0005;
    private static SwiftTagSubItemDefinition U0010U0005;
    private static SwiftTagSubItemDefinition U0011U0005;
    private static SwiftTagDefinition U0012U0005;
    private static SwiftTagSubItemDefinition U0013U0005;
    private static SwiftTagSubItemDefinition U0014U0005;
    private static SwiftTagSubItemDefinition U0015U0005;
    private static SwiftTagSubItemDefinition U0016U0005;
    private static SwiftTagDefinition U0017U0005;
    private static SwiftTagSubItemDefinition U0018U0005;
    private static SwiftTagSubItemDefinition U0019U0005;
    private static SwiftTagDefinition U001AU0005;
    private static SwiftTagSubItemDefinition U001BU0005;
    private static SwiftTagDefinition U001CU0005;
    private static SwiftTagSubItemDefinition U001DU0005;
    private static SwiftTagSequenceDefinition U001EU0005;
    private static SwiftTagDefinition U001FU0005;
    private static SwiftTagSubItemDefinition U007FU0005;
    private static SwiftTagDefinition U0080U0005;
    private static SwiftTagSubItemDefinition U0081U0005;
    private static SwiftTagSubItemDefinition U0082U0005;
    private static SwiftTagDefinition U0083U0005;
    private static SwiftTagSubItemDefinition U0084U0005;
    private static SwiftTagSubItemDefinition U0086U0005;
    private static SwiftTagDefinition U0087U0005;
    private static SwiftTagSubItemDefinition U0088U0005;
    private static SwiftTagSubItemDefinition U0089U0005;
    private static SwiftTagSubItemDefinition U008AU0005;
    private static SwiftTagDefinition U008BU0005;
    private static SwiftTagSubItemDefinition U008CU0005;
    private static SwiftTagSubItemDefinition U008DU0005;
    private static SwiftTagSubItemDefinition U008EU0005;
    private static SwiftTagSubItemDefinition U008FU0005;
    private static SwiftTagDefinition U0090U0005;
    private static SwiftTagSubItemDefinition U0091U0005;
    private static SwiftTagSubItemDefinition U0092U0005;
    private static SwiftTagDefinition U0093U0005;
    private static SwiftTagSubItemDefinition U0094U0005;
    private static SwiftTagSubItemDefinition U0095U0005;
    private static SwiftTagSubItemDefinition U0096U0005;
    private static SwiftTagChoiceDefinition U0097U0005;
    private static SwiftTagDefinition U0098U0005;
    private static SwiftTagSubItemDefinition U0099U0005;
    private static SwiftTagSubItemDefinition U009AU0005;
    private static SwiftTagDefinition U009BU0005;
    private static SwiftTagSubItemDefinition U009CU0005;
    private static SwiftTagSubItemDefinition U009DU0005;
    private static SwiftTagSubItemDefinition U009EU0005;
    private static SwiftTagSubItemDefinition U009FU0005;
    private static SwiftTagSubItemDefinition U0001U0006;
    private static SwiftTagSequenceDefinition U0002U0006;
    private static SwiftTagDefinition U0003U0006;
    private static SwiftTagSubItemDefinition U0004U0006;
    private static SwiftTagDefinition U0005U0006;
    private static SwiftTagSubItemDefinition U0006U0006;
    private static SwiftTagSubItemDefinition U0007U0006;
    private static SwiftTagSubItemDefinition U0008U0006;
    private static SwiftTagSubItemDefinition U000EU0006;
    private static SwiftTagDefinition U000FU0006;
    private static SwiftTagSubItemDefinition U0010U0006;
    private static SwiftTagSubItemDefinition U0011U0006;
    private static SwiftTagSubItemDefinition U0012U0006;
    private static SwiftTagDefinition U0013U0006;
    private static SwiftTagSubItemDefinition U0014U0006;
    private static SwiftTagSubItemDefinition U0015U0006;
    private static SwiftTagSubItemDefinition U0016U0006;
    private static SwiftTagSubItemDefinition U0017U0006;
    private static SwiftTagDefinition U0018U0006;
    private static SwiftTagSubItemDefinition U0019U0006;
    private static SwiftTagSubItemDefinition U001AU0006;
    private static SwiftTagDefinition U001BU0006;
    private static SwiftTagSubItemDefinition U001CU0006;
    private static SwiftTagSubItemDefinition U001DU0006;
    private static SwiftTagDefinition U001EU0006;
    private static SwiftTagSubItemDefinition U001FU0006;
    private static SwiftTagSubItemDefinition U007FU0006;
    private static SwiftTagSubItemDefinition U0080U0006;
    private static SwiftTagSubItemDefinition U0081U0006;
    private static SwiftTagSubItemDefinition U0082U0006;
    private static SwiftTagDefinition U0083U0006;
    private static SwiftTagSubItemDefinition U0084U0006;
    private static SwiftTagSubItemDefinition U0086U0006;
    private static SwiftTagDefinition U0087U0006;
    private static SwiftTagSubItemDefinition U0088U0006;
    private static SwiftTagSequenceDefinition U0089U0006;
    private static SwiftTagDefinition U008AU0006;
    private static SwiftTagSubItemDefinition U008BU0006;
    private static SwiftTagDefinition U008CU0006;
    private static SwiftTagSubItemDefinition U008DU0006;
    private static SwiftTagSubItemDefinition U008EU0006;
    private static SwiftTagSubItemDefinition U008FU0006;
    private static SwiftTagSubItemDefinition U0090U0006;
    private static SwiftTagDefinition U0091U0006;
    private static SwiftTagSubItemDefinition U0092U0006;
    private static SwiftTagSubItemDefinition U0093U0006;
    private static SwiftTagDefinition U0094U0006;
    private static SwiftTagSubItemDefinition U0095U0006;
    private static SwiftTagSubItemDefinition U0096U0006;
    private static SwiftTagDefinition U0097U0006;
    private static SwiftTagSubItemDefinition U0098U0006;
    private static SwiftTagSequenceDefinition U0099U0006;
    private static SwiftTagDefinition U009AU0006;
    private static SwiftTagSubItemDefinition U009BU0006;
    private static SwiftTagDefinition U009CU0006;
    private static SwiftTagSubItemDefinition U009DU0006;
    private static SwiftTagSubItemDefinition U009EU0006;
    private static SwiftTagChoiceDefinition U009FU0006;
    private static SwiftTagDefinition U0001U0007;
    private static SwiftTagSubItemDefinition U0002U0007;
    private static SwiftTagSubItemDefinition U0003U0007;
    private static SwiftTagDefinition U0004U0007;
    private static SwiftTagSubItemDefinition U0005U0007;
    private static SwiftTagSubItemDefinition U0006U0007;
    private static SwiftTagSubItemDefinition U0007U0007;
    private static SwiftTagChoiceDefinition U0008U0007;
    private static SwiftTagDefinition U000EU0007;
    private static SwiftTagSubItemDefinition U000FU0007;
    private static SwiftTagSubItemDefinition U0010U0007;
    private static SwiftTagDefinition U0011U0007;
    private static SwiftTagSubItemDefinition U0012U0007;
    private static SwiftTagSubItemDefinition U0013U0007;
    private static SwiftTagDefinition U0014U0007;
    private static SwiftTagSubItemDefinition U0015U0007;
    private static SwiftTagSubItemDefinition U0016U0007;
    private static SwiftTagSubItemDefinition U0017U0007;
    private static SwiftTagDefinition U0018U0007;
    private static SwiftTagSubItemDefinition U0019U0007;
    private static SwiftTagSubItemDefinition U001AU0007;
    private static SwiftTagSubItemDefinition U001BU0007;
    private static SwiftTagSubItemDefinition U001CU0007;
    private static SwiftTagDefinition U001DU0007;
    private static SwiftTagSubItemDefinition U001EU0007;
    private static SwiftTagDefinition U001FU0007;
    private static SwiftTagSubItemDefinition U007FU0007;
    private static SwiftTagSequenceDefinition U0080U0007;
    private static SwiftTagDefinition U0081U0007;
    private static SwiftTagSubItemDefinition U0082U0007;
    private static SwiftTagChoiceDefinition U0083U0007;
    private static SwiftTagDefinition U0084U0007;
    private static SwiftTagSubItemDefinition U0086U0007;
    private static SwiftTagSubItemDefinition U0087U0007;
    private static SwiftTagDefinition U0088U0007;
    private static SwiftTagSubItemDefinition U0089U0007;
    private static SwiftTagSubItemDefinition U008AU0007;
    private static SwiftTagDefinition U008BU0007;
    private static SwiftTagSubItemDefinition U008CU0007;
    private static SwiftTagSubItemDefinition U008DU0007;
    private static SwiftTagSubItemDefinition U008EU0007;
    private static SwiftTagDefinition U008FU0007;
    private static SwiftTagSubItemDefinition U0090U0007;
    private static SwiftTagSubItemDefinition U0091U0007;
    private static SwiftTagDefinition U0092U0007;
    private static SwiftTagSubItemDefinition U0093U0007;

    [Description("General Information")]
    public MT506.SequenceAClass SequenceA
    {
      get
      {
        return new MT506.SequenceAClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Summary")]
    public MT506.SequenceBClass SequenceB
    {
      get
      {
        return new MT506.SequenceBClass((SwiftElement) this, 0, false);
      }
    }

    [Description("Exposure Valuation Details")]
    public MT506.SequenceCClass[] SequenceC
    {
      get
      {
        int index = -1;
        List<MT506.SequenceCClass> list = new List<MT506.SequenceCClass>();
        int count;
        do
        {
          ++index;
          MT506.SequenceCClass sequenceCclass = new MT506.SequenceCClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceCclass).Count;
          if (count > 0)
            list.Add(sequenceCclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Collateral Details")]
    public MT506.SequenceDClass[] SequenceD
    {
      get
      {
        int index = -1;
        List<MT506.SequenceDClass> list = new List<MT506.SequenceDClass>();
        int count;
        do
        {
          ++index;
          MT506.SequenceDClass sequenceDclass = new MT506.SequenceDClass((SwiftElement) this, index, false);
          count = this.ListTags((SwiftElement) sequenceDclass).Count;
          if (count > 0)
            list.Add(sequenceDclass);
        }
        while (count > 0);
        return list.ToArray();
      }
    }

    [Description("Additional Information")]
    public MT506.SequenceEClass SequenceE
    {
      get
      {
        MT506.SequenceEClass sequenceEclass = new MT506.SequenceEClass((SwiftElement) this, 0, false);
        if (this.ListTags((SwiftElement) sequenceEclass).Count > 0)
          return sequenceEclass;
        else
          return (MT506.SequenceEClass) null;
      }
    }

    public MT506()
      : base(true)
    {
    }

    public MT506(SwiftMessage message)
      : base(message)
    {
    }

    public MT506.SequenceCClass AddSequenceC()
    {
      return new MT506.SequenceCClass((SwiftElement) this, this.SequenceC.Length, true);
    }

    public void RemoveSequenceC(MT506.SequenceCClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    public MT506.SequenceDClass AddSequenceD()
    {
      return new MT506.SequenceDClass((SwiftElement) this, this.SequenceD.Length, true);
    }

    public void RemoveSequenceD(MT506.SequenceDClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    public MT506.SequenceEClass AddSequenceE()
    {
      return this.SequenceE ?? new MT506.SequenceEClass((SwiftElement) this, 0, true);
    }

    public void RemoveSequenceE(MT506.SequenceEClass sequence)
    {
      foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
        this.RemoveTag(tag);
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT506.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT506.MessageDefinition = new SwiftMessageDefinition("MT506", "Collateral and Exposure Statement");
      MT506.U0002 = new SwiftTagSequenceDefinition("SequenceA", "General Information");
      MT506.U0003 = new SwiftTagDefinition("StartOfBlock_A_16R", "Start Of Block");
      MT506.U0003.TagName = ":16R:GENL";
      MT506.U0004 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U0004.Mandatory = false;
      MT506.U0003.Elements.Add((SwiftDefinitionElement) MT506.U0004);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0003);
      MT506.U0005 = new SwiftTagDefinition("PageNumberAndContinuationIndicator_A_28E", "Page Number/Continuation Indicator");
      MT506.U0005.TagName = ":28E:";
      MT506.U0006 = new SwiftTagSubItemDefinition("PageNumber", "Page Number");
      MT506.U0005.Elements.Add((SwiftDefinitionElement) MT506.U0006);
      MT506.U0007 = new SwiftTagSubItemDefinition("ContinuationIndicator", "Continuation Indicator");
      MT506.U0005.Elements.Add((SwiftDefinitionElement) MT506.U0007);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0005);
      MT506.U0008 = new SwiftTagDefinition("Reference_A_20C", "Reference");
      MT506.U0008.TagName = ":20C::";
      MT506.U0008.Multiple = true;
      MT506.U000E = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0008.Elements.Add((SwiftDefinitionElement) MT506.U000E);
      MT506.U000F = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT506.U0008.Elements.Add((SwiftDefinitionElement) MT506.U000F);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0008);
      MT506.U0010 = new SwiftTagDefinition("FunctionOfTheMessage_A_23G", "Function Of The Message");
      MT506.U0010.TagName = ":23G:";
      MT506.U0011 = new SwiftTagSubItemDefinition("Function", "Function");
      MT506.U0010.Elements.Add((SwiftDefinitionElement) MT506.U0011);
      MT506.U0012 = new SwiftTagSubItemDefinition("Subfunction", "Subfunction");
      MT506.U0012.Mandatory = false;
      MT506.U0013 = new SwiftTagSubItemDefinition("Subfunction_1", "Subfunction");
      MT506.U0012.Elements.Add((SwiftDefinitionElement) MT506.U0013);
      MT506.U0010.Elements.Add((SwiftDefinitionElement) MT506.U0012);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0010);
      MT506.U0014 = new SwiftTagSequenceDefinition("SequenceA1", "Agreement");
      MT506.U0014.Multiple = true;
      MT506.U0015 = new SwiftTagDefinition("StartOfBlock_A1_16R", "Start Of Block");
      MT506.U0015.TagName = ":16R:AGRE";
      MT506.U0016 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT506.U0016.Mandatory = false;
      MT506.U0015.Elements.Add((SwiftDefinitionElement) MT506.U0016);
      MT506.U0014.Elements.Add((SwiftDefinitionElement) MT506.U0015);
      MT506.U0017 = new SwiftTagDefinition("Indicator_A1_22F", "Agreement Indicator");
      MT506.U0017.TagName = ":22F::";
      MT506.U0017.Mandatory = false;
      MT506.U0018 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0017.Elements.Add((SwiftDefinitionElement) MT506.U0018);
      MT506.U0019 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U0017.Elements.Add((SwiftDefinitionElement) MT506.U0019);
      MT506.U001A = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U0017.Elements.Add((SwiftDefinitionElement) MT506.U001A);
      MT506.U0014.Elements.Add((SwiftDefinitionElement) MT506.U0017);
      MT506.U001B = new SwiftTagDefinition("Date_A1_98A", "Agreement Date");
      MT506.U001B.TagName = ":98A::";
      MT506.U001B.Mandatory = false;
      MT506.U001C = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001B.Elements.Add((SwiftDefinitionElement) MT506.U001C);
      MT506.U001D = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U001B.Elements.Add((SwiftDefinitionElement) MT506.U001D);
      MT506.U0014.Elements.Add((SwiftDefinitionElement) MT506.U001B);
      MT506.U001E = new SwiftTagDefinition("Number_A1_13B", "Agreement Version Number");
      MT506.U001E.TagName = ":13B::";
      MT506.U001E.Mandatory = false;
      MT506.U001F = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001E.Elements.Add((SwiftDefinitionElement) MT506.U001F);
      MT506.U007F = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U001E.Elements.Add((SwiftDefinitionElement) MT506.U007F);
      MT506.U0080 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT506.U001E.Elements.Add((SwiftDefinitionElement) MT506.U0080);
      MT506.U0014.Elements.Add((SwiftDefinitionElement) MT506.U001E);
      MT506.U0081 = new SwiftTagDefinition("Narrative_A1_70C", "Agreement Narrative");
      MT506.U0081.TagName = ":70C::";
      MT506.U0081.Mandatory = false;
      MT506.U0082 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0081.Elements.Add((SwiftDefinitionElement) MT506.U0082);
      MT506.U0083 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT506.U0081.Elements.Add((SwiftDefinitionElement) MT506.U0083);
      MT506.U0014.Elements.Add((SwiftDefinitionElement) MT506.U0081);
      MT506.U0084 = new SwiftTagDefinition("EndOfBlock_A1_16S", "End Of Block");
      MT506.U0084.TagName = ":16S:AGRE";
      MT506.U0086 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0086.Mandatory = false;
      MT506.U0084.Elements.Add((SwiftDefinitionElement) MT506.U0086);
      MT506.U0014.Elements.Add((SwiftDefinitionElement) MT506.U0084);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0014);
      MT506.U0087 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0087.Mandatory = false;
      MT506.U0087.Multiple = true;
      MT506.U0088 = new SwiftTagDefinition("Date_A_98A", "Preparation Date");
      MT506.U0088.TagName = ":98A::";
      MT506.U0089 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0088.Elements.Add((SwiftDefinitionElement) MT506.U0089);
      MT506.U008A = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U0088.Elements.Add((SwiftDefinitionElement) MT506.U008A);
      MT506.U0087.Elements.Add((SwiftDefinitionElement) MT506.U0088);
      MT506.U008B = new SwiftTagDefinition("DateTime_A_98C", "Preparation Date and Time");
      MT506.U008B.TagName = ":98C::";
      MT506.U008C = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008B.Elements.Add((SwiftDefinitionElement) MT506.U008C);
      MT506.U008D = new SwiftTagSubItemDefinition("DateTime", "Date Time");
      MT506.U008E = new SwiftTagSubItemDefinition("Date", "Preparation Date");
      MT506.U008D.Elements.Add((SwiftDefinitionElement) MT506.U008E);
      MT506.U008F = new SwiftTagSubItemDefinition("Time", "Preparation Time");
      MT506.U008D.Elements.Add((SwiftDefinitionElement) MT506.U008F);
      MT506.U008B.Elements.Add((SwiftDefinitionElement) MT506.U008D);
      MT506.U0087.Elements.Add((SwiftDefinitionElement) MT506.U008B);
      MT506.U0090 = new SwiftTagDefinition("DateTime_A_98E", "Trade Date/Time");
      MT506.U0090.TagName = ":98E::";
      MT506.U0091 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0090.Elements.Add((SwiftDefinitionElement) MT506.U0091);
      MT506.U0092 = new SwiftTagSubItemDefinition("DateTimeDecimalsAndUTCIndicator", "Trade Date/Time");
      MT506.U0093 = new SwiftTagSubItemDefinition("DateTimeDecimals", "Trade Date/Time");
      MT506.U0094 = new SwiftTagSubItemDefinition("DateTime", "Date\\Time");
      MT506.U0095 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U0094.Elements.Add((SwiftDefinitionElement) MT506.U0095);
      MT506.U0096 = new SwiftTagSubItemDefinition("Time", "Time");
      MT506.U0094.Elements.Add((SwiftDefinitionElement) MT506.U0096);
      MT506.U0093.Elements.Add((SwiftDefinitionElement) MT506.U0094);
      MT506.U0097 = new SwiftTagSubItemDefinition("Decimals", "Time");
      MT506.U0097.Mandatory = false;
      MT506.U0093.Elements.Add((SwiftDefinitionElement) MT506.U0097);
      MT506.U0092.Elements.Add((SwiftDefinitionElement) MT506.U0093);
      MT506.U0098 = new SwiftTagSubItemDefinition("UTCIndicatorRecord", "Date\\Time");
      MT506.U0098.Mandatory = false;
      MT506.U0099 = new SwiftTagSubItemDefinition("UTCIndicator", "Indicator");
      MT506.U0098.Elements.Add((SwiftDefinitionElement) MT506.U0099);
      MT506.U0092.Elements.Add((SwiftDefinitionElement) MT506.U0098);
      MT506.U0090.Elements.Add((SwiftDefinitionElement) MT506.U0092);
      MT506.U0087.Elements.Add((SwiftDefinitionElement) MT506.U0090);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0087);
      MT506.U009A = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U009A.Multiple = true;
      MT506.U009B = new SwiftTagDefinition("Indicator_A_22F", "Agreement Indicator");
      MT506.U009B.TagName = ":22F::";
      MT506.U009C = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009B.Elements.Add((SwiftDefinitionElement) MT506.U009C);
      MT506.U009D = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U009B.Elements.Add((SwiftDefinitionElement) MT506.U009D);
      MT506.U009E = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U009B.Elements.Add((SwiftDefinitionElement) MT506.U009E);
      MT506.U009A.Elements.Add((SwiftDefinitionElement) MT506.U009B);
      MT506.U009F = new SwiftTagDefinition("Indicator_A_22H", "Exposure Type Indicator");
      MT506.U009F.TagName = ":22H::";
      MT506.U0001U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009F.Elements.Add((SwiftDefinitionElement) MT506.U0001U0002);
      MT506.U0002U0002 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U009F.Elements.Add((SwiftDefinitionElement) MT506.U0002U0002);
      MT506.U009A.Elements.Add((SwiftDefinitionElement) MT506.U009F);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U009A);
      MT506.U0003U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0003U0002.Multiple = true;
      MT506.U0004U0002 = new SwiftTagDefinition("Party_A_95P", "Party");
      MT506.U0004U0002.TagName = ":95P::";
      MT506.U0004U0002.Multiple = true;
      MT506.U0005U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0004U0002.Elements.Add((SwiftDefinitionElement) MT506.U0005U0002);
      MT506.U0006U0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT506.U0004U0002.Elements.Add((SwiftDefinitionElement) MT506.U0006U0002);
      MT506.U0003U0002.Elements.Add((SwiftDefinitionElement) MT506.U0004U0002);
      MT506.U0007U0002 = new SwiftTagDefinition("Party_A_95Q", "Party");
      MT506.U0007U0002.TagName = ":95Q::";
      MT506.U0007U0002.Multiple = true;
      MT506.U0008U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0007U0002.Elements.Add((SwiftDefinitionElement) MT506.U0008U0002);
      MT506.U000EU0002 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT506.U0007U0002.Elements.Add((SwiftDefinitionElement) MT506.U000EU0002);
      MT506.U0003U0002.Elements.Add((SwiftDefinitionElement) MT506.U0007U0002);
      MT506.U000FU0002 = new SwiftTagDefinition("Party_A_95R", "Party");
      MT506.U000FU0002.TagName = ":95R::";
      MT506.U000FU0002.Multiple = true;
      MT506.U0010U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U000FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0010U0002);
      MT506.U0011U0002 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT506.U000FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0011U0002);
      MT506.U0012U0002 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT506.U000FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0012U0002);
      MT506.U0003U0002.Elements.Add((SwiftDefinitionElement) MT506.U000FU0002);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0003U0002);
      MT506.U0013U0002 = new SwiftTagDefinition("Narrative_A_70C", "Party Contact Narrative");
      MT506.U0013U0002.TagName = ":70C::";
      MT506.U0013U0002.Mandatory = false;
      MT506.U0014U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0013U0002.Elements.Add((SwiftDefinitionElement) MT506.U0014U0002);
      MT506.U0015U0002 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT506.U0013U0002.Elements.Add((SwiftDefinitionElement) MT506.U0015U0002);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0013U0002);
      MT506.U0016U0002 = new SwiftTagSequenceDefinition("SequenceA2", "Linkages");
      MT506.U0016U0002.Mandatory = false;
      MT506.U0016U0002.Multiple = true;
      MT506.U0017U0002 = new SwiftTagDefinition("StartOfBlock_A2_16R", "Start Of Block");
      MT506.U0017U0002.TagName = ":16R:LINK";
      MT506.U0018U0002 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT506.U0018U0002.Mandatory = false;
      MT506.U0017U0002.Elements.Add((SwiftDefinitionElement) MT506.U0018U0002);
      MT506.U0016U0002.Elements.Add((SwiftDefinitionElement) MT506.U0017U0002);
      MT506.U0019U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0019U0002.Mandatory = false;
      MT506.U0019U0002.Multiple = true;
      MT506.U001AU0002 = new SwiftTagDefinition("NumberIdentification_A2_13A", "Linked Message");
      MT506.U001AU0002.TagName = ":13A::";
      MT506.U001BU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001AU0002.Elements.Add((SwiftDefinitionElement) MT506.U001BU0002);
      MT506.U001CU0002 = new SwiftTagSubItemDefinition("NumberId", "Number Id");
      MT506.U001AU0002.Elements.Add((SwiftDefinitionElement) MT506.U001CU0002);
      MT506.U0019U0002.Elements.Add((SwiftDefinitionElement) MT506.U001AU0002);
      MT506.U001DU0002 = new SwiftTagDefinition("NumberIdentification_A2_13B", "Linked Message");
      MT506.U001DU0002.TagName = ":13B::";
      MT506.U001EU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001DU0002.Elements.Add((SwiftDefinitionElement) MT506.U001EU0002);
      MT506.U001FU0002 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U001DU0002.Elements.Add((SwiftDefinitionElement) MT506.U001FU0002);
      MT506.U007FU0002 = new SwiftTagSubItemDefinition("Number_13B", "Number");
      MT506.U001DU0002.Elements.Add((SwiftDefinitionElement) MT506.U007FU0002);
      MT506.U0019U0002.Elements.Add((SwiftDefinitionElement) MT506.U001DU0002);
      MT506.U0016U0002.Elements.Add((SwiftDefinitionElement) MT506.U0019U0002);
      MT506.U0080U0002 = new SwiftTagDefinition("Reference_A2_20C", "Reference");
      MT506.U0080U0002.TagName = ":20C::";
      MT506.U0081U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0080U0002.Elements.Add((SwiftDefinitionElement) MT506.U0081U0002);
      MT506.U0082U0002 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT506.U0080U0002.Elements.Add((SwiftDefinitionElement) MT506.U0082U0002);
      MT506.U0016U0002.Elements.Add((SwiftDefinitionElement) MT506.U0080U0002);
      MT506.U0083U0002 = new SwiftTagDefinition("EndOfBlock_A2_16S", "End Of Block");
      MT506.U0083U0002.TagName = ":16S:LINK";
      MT506.U0084U0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0084U0002.Mandatory = false;
      MT506.U0083U0002.Elements.Add((SwiftDefinitionElement) MT506.U0084U0002);
      MT506.U0016U0002.Elements.Add((SwiftDefinitionElement) MT506.U0083U0002);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0016U0002);
      MT506.U0086U0002 = new SwiftTagDefinition("EndOfBlock_A_16S", "End Of Block");
      MT506.U0086U0002.TagName = ":16S:GENL";
      MT506.U0087U0002 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0087U0002.Mandatory = false;
      MT506.U0086U0002.Elements.Add((SwiftDefinitionElement) MT506.U0087U0002);
      MT506.U0002.Elements.Add((SwiftDefinitionElement) MT506.U0086U0002);
      MT506.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT506.U0002);
      MT506.U0088U0002 = new SwiftTagSequenceDefinition("SequenceB", "Summary");
      MT506.U0089U0002 = new SwiftTagDefinition("StartOfBlock_B_16R", "Start Of Block");
      MT506.U0089U0002.TagName = ":16R:SUMM";
      MT506.U008AU0002 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U008AU0002.Mandatory = false;
      MT506.U0089U0002.Elements.Add((SwiftDefinitionElement) MT506.U008AU0002);
      MT506.U0088U0002.Elements.Add((SwiftDefinitionElement) MT506.U0089U0002);
      MT506.U008BU0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U008BU0002.Multiple = true;
      MT506.U008CU0002 = new SwiftTagDefinition("Party_B_95P", "Exposed Party");
      MT506.U008CU0002.TagName = ":95P::";
      MT506.U008DU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008CU0002.Elements.Add((SwiftDefinitionElement) MT506.U008DU0002);
      MT506.U008EU0002 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT506.U008CU0002.Elements.Add((SwiftDefinitionElement) MT506.U008EU0002);
      MT506.U008BU0002.Elements.Add((SwiftDefinitionElement) MT506.U008CU0002);
      MT506.U008FU0002 = new SwiftTagDefinition("Party_B_95Q", "Exposed Party");
      MT506.U008FU0002.TagName = ":95Q::";
      MT506.U0090U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0090U0002);
      MT506.U0091U0002 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT506.U008FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0091U0002);
      MT506.U008BU0002.Elements.Add((SwiftDefinitionElement) MT506.U008FU0002);
      MT506.U0092U0002 = new SwiftTagDefinition("Party_B_95R", "Exposed Party");
      MT506.U0092U0002.TagName = ":95R::";
      MT506.U0093U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0092U0002.Elements.Add((SwiftDefinitionElement) MT506.U0093U0002);
      MT506.U0094U0002 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT506.U0092U0002.Elements.Add((SwiftDefinitionElement) MT506.U0094U0002);
      MT506.U0095U0002 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT506.U0092U0002.Elements.Add((SwiftDefinitionElement) MT506.U0095U0002);
      MT506.U008BU0002.Elements.Add((SwiftDefinitionElement) MT506.U0092U0002);
      MT506.U0088U0002.Elements.Add((SwiftDefinitionElement) MT506.U008BU0002);
      MT506.U0096U0002 = new SwiftTagDefinition("Amount_B_19B", "Amount");
      MT506.U0096U0002.TagName = ":19B::";
      MT506.U0096U0002.Multiple = true;
      MT506.U0097U0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0096U0002.Elements.Add((SwiftDefinitionElement) MT506.U0097U0002);
      MT506.U0098U0002 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT506.U0099U0002 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U0098U0002.Elements.Add((SwiftDefinitionElement) MT506.U0099U0002);
      MT506.U009AU0002 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U0098U0002.Elements.Add((SwiftDefinitionElement) MT506.U009AU0002);
      MT506.U0096U0002.Elements.Add((SwiftDefinitionElement) MT506.U0098U0002);
      MT506.U0088U0002.Elements.Add((SwiftDefinitionElement) MT506.U0096U0002);
      MT506.U009BU0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U009BU0002.Multiple = true;
      MT506.U009CU0002 = new SwiftTagDefinition("Date_B_98A", "Preparation Date");
      MT506.U009CU0002.TagName = ":98A::";
      MT506.U009CU0002.Multiple = true;
      MT506.U009DU0002 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009CU0002.Elements.Add((SwiftDefinitionElement) MT506.U009DU0002);
      MT506.U009EU0002 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U009CU0002.Elements.Add((SwiftDefinitionElement) MT506.U009EU0002);
      MT506.U009BU0002.Elements.Add((SwiftDefinitionElement) MT506.U009CU0002);
      MT506.U009FU0002 = new SwiftTagDefinition("DateTime_B_98C", "Preparation Date and Time");
      MT506.U009FU0002.TagName = ":98C::";
      MT506.U009FU0002.Multiple = true;
      MT506.U0001U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0001U0003);
      MT506.U0002U0003 = new SwiftTagSubItemDefinition("DateTime", "Date Time");
      MT506.U0003U0003 = new SwiftTagSubItemDefinition("Date", "Preparation Date");
      MT506.U0002U0003.Elements.Add((SwiftDefinitionElement) MT506.U0003U0003);
      MT506.U0004U0003 = new SwiftTagSubItemDefinition("Time", "Preparation Time");
      MT506.U0002U0003.Elements.Add((SwiftDefinitionElement) MT506.U0004U0003);
      MT506.U009FU0002.Elements.Add((SwiftDefinitionElement) MT506.U0002U0003);
      MT506.U009BU0002.Elements.Add((SwiftDefinitionElement) MT506.U009FU0002);
      MT506.U0088U0002.Elements.Add((SwiftDefinitionElement) MT506.U009BU0002);
      MT506.U0005U0003 = new SwiftTagSequenceDefinition("SequenceB1", "Summary Details");
      MT506.U0005U0003.Mandatory = false;
      MT506.U0006U0003 = new SwiftTagDefinition("StartOfBlock_B1_16R", "Start Of Block");
      MT506.U0006U0003.TagName = ":16R:SUMD";
      MT506.U0007U0003 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U0007U0003.Mandatory = false;
      MT506.U0006U0003.Elements.Add((SwiftDefinitionElement) MT506.U0007U0003);
      MT506.U0005U0003.Elements.Add((SwiftDefinitionElement) MT506.U0006U0003);
      MT506.U0008U0003 = new SwiftTagDefinition("Amount_B1_19B", "Amount");
      MT506.U0008U0003.TagName = ":19B::";
      MT506.U0008U0003.Mandatory = false;
      MT506.U0008U0003.Multiple = true;
      MT506.U000EU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0008U0003.Elements.Add((SwiftDefinitionElement) MT506.U000EU0003);
      MT506.U000FU0003 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT506.U0010U0003 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U000FU0003.Elements.Add((SwiftDefinitionElement) MT506.U0010U0003);
      MT506.U0011U0003 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U000FU0003.Elements.Add((SwiftDefinitionElement) MT506.U0011U0003);
      MT506.U0008U0003.Elements.Add((SwiftDefinitionElement) MT506.U000FU0003);
      MT506.U0005U0003.Elements.Add((SwiftDefinitionElement) MT506.U0008U0003);
      MT506.U0012U0003 = new SwiftTagDefinition("EndOfBlock_B1_16S", "End Of Block");
      MT506.U0012U0003.TagName = ":16S:SUMD";
      MT506.U0013U0003 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0013U0003.Mandatory = false;
      MT506.U0012U0003.Elements.Add((SwiftDefinitionElement) MT506.U0013U0003);
      MT506.U0005U0003.Elements.Add((SwiftDefinitionElement) MT506.U0012U0003);
      MT506.U0088U0002.Elements.Add((SwiftDefinitionElement) MT506.U0005U0003);
      MT506.U0014U0003 = new SwiftTagDefinition("EndOfBlock_B_16S", "End Of Block");
      MT506.U0014U0003.TagName = ":16S:SUMM";
      MT506.U0015U0003 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0015U0003.Mandatory = false;
      MT506.U0014U0003.Elements.Add((SwiftDefinitionElement) MT506.U0015U0003);
      MT506.U0088U0002.Elements.Add((SwiftDefinitionElement) MT506.U0014U0003);
      MT506.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT506.U0088U0002);
      MT506.U0016U0003 = new SwiftTagSequenceDefinition("SequenceC", "Exposure Valuation Details");
      MT506.U0016U0003.Mandatory = false;
      MT506.U0016U0003.Multiple = true;
      MT506.U0017U0003 = new SwiftTagDefinition("StartOfBlock_C_16R", "Start Of Block");
      MT506.U0017U0003.TagName = ":16R:EXPD";
      MT506.U0018U0003 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U0018U0003.Mandatory = false;
      MT506.U0017U0003.Elements.Add((SwiftDefinitionElement) MT506.U0018U0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0017U0003);
      MT506.U0019U0003 = new SwiftTagDefinition("Reference_C_20C", "Reference");
      MT506.U0019U0003.TagName = ":20C::";
      MT506.U0019U0003.Mandatory = false;
      MT506.U0019U0003.Multiple = true;
      MT506.U001AU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0019U0003.Elements.Add((SwiftDefinitionElement) MT506.U001AU0003);
      MT506.U001BU0003 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT506.U0019U0003.Elements.Add((SwiftDefinitionElement) MT506.U001BU0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0019U0003);
      MT506.U001CU0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U001CU0003.Multiple = true;
      MT506.U001DU0003 = new SwiftTagDefinition("Indicator_C_1_22F", "Agreement Indicator");
      MT506.U001DU0003.TagName = ":22F::";
      MT506.U001EU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001DU0003.Elements.Add((SwiftDefinitionElement) MT506.U001EU0003);
      MT506.U001FU0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U001DU0003.Elements.Add((SwiftDefinitionElement) MT506.U001FU0003);
      MT506.U007FU0003 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U001DU0003.Elements.Add((SwiftDefinitionElement) MT506.U007FU0003);
      MT506.U001CU0003.Elements.Add((SwiftDefinitionElement) MT506.U001DU0003);
      MT506.U0080U0003 = new SwiftTagDefinition("Indicator_C_22H", "Exposure Type Indicator");
      MT506.U0080U0003.TagName = ":22H::";
      MT506.U0081U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0080U0003.Elements.Add((SwiftDefinitionElement) MT506.U0081U0003);
      MT506.U0082U0003 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U0080U0003.Elements.Add((SwiftDefinitionElement) MT506.U0082U0003);
      MT506.U001CU0003.Elements.Add((SwiftDefinitionElement) MT506.U0080U0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U001CU0003);
      MT506.U0083U0003 = new SwiftTagDefinition("Date_C_98A", "Trade Date");
      MT506.U0083U0003.TagName = ":98A::";
      MT506.U0083U0003.Mandatory = false;
      MT506.U0084U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0083U0003.Elements.Add((SwiftDefinitionElement) MT506.U0084U0003);
      MT506.U0086U0003 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U0083U0003.Elements.Add((SwiftDefinitionElement) MT506.U0086U0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0083U0003);
      MT506.U0087U0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0087U0003.Mandatory = false;
      MT506.U0087U0003.Multiple = true;
      MT506.U0088U0003 = new SwiftTagDefinition("Party_C_95P", "Party");
      MT506.U0088U0003.TagName = ":95P::";
      MT506.U0088U0003.Multiple = true;
      MT506.U0089U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0088U0003.Elements.Add((SwiftDefinitionElement) MT506.U0089U0003);
      MT506.U008AU0003 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT506.U0088U0003.Elements.Add((SwiftDefinitionElement) MT506.U008AU0003);
      MT506.U0087U0003.Elements.Add((SwiftDefinitionElement) MT506.U0088U0003);
      MT506.U008BU0003 = new SwiftTagDefinition("Party_C_95Q", "Party");
      MT506.U008BU0003.TagName = ":95Q::";
      MT506.U008BU0003.Multiple = true;
      MT506.U008CU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008BU0003.Elements.Add((SwiftDefinitionElement) MT506.U008CU0003);
      MT506.U008DU0003 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT506.U008BU0003.Elements.Add((SwiftDefinitionElement) MT506.U008DU0003);
      MT506.U0087U0003.Elements.Add((SwiftDefinitionElement) MT506.U008BU0003);
      MT506.U008EU0003 = new SwiftTagDefinition("Party_C_95R", "Party");
      MT506.U008EU0003.TagName = ":95R::";
      MT506.U008EU0003.Multiple = true;
      MT506.U008FU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008EU0003.Elements.Add((SwiftDefinitionElement) MT506.U008FU0003);
      MT506.U0090U0003 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT506.U008EU0003.Elements.Add((SwiftDefinitionElement) MT506.U0090U0003);
      MT506.U0091U0003 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT506.U008EU0003.Elements.Add((SwiftDefinitionElement) MT506.U0091U0003);
      MT506.U0087U0003.Elements.Add((SwiftDefinitionElement) MT506.U008EU0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0087U0003);
      MT506.U0092U0003 = new SwiftTagDefinition("Amount_C_19A", "Amount");
      MT506.U0092U0003.TagName = ":19A::";
      MT506.U0092U0003.Multiple = true;
      MT506.U0093U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0092U0003.Elements.Add((SwiftDefinitionElement) MT506.U0093U0003);
      MT506.U0094U0003 = new SwiftTagSubItemDefinition("SignCodeAmount", "Sign Currency Code Amount");
      MT506.U0092U0003.Elements.Add((SwiftDefinitionElement) MT506.U0094U0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0092U0003);
      MT506.U0095U0003 = new SwiftTagDefinition("NumberCount_C_99A", "Number Of Days Accrued");
      MT506.U0095U0003.TagName = ":99A::";
      MT506.U0095U0003.Mandatory = false;
      MT506.U0096U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0095U0003.Elements.Add((SwiftDefinitionElement) MT506.U0096U0003);
      MT506.U0097U0003 = new SwiftTagSubItemDefinition("SignNumber", "Sign Number");
      MT506.U0095U0003.Elements.Add((SwiftDefinitionElement) MT506.U0097U0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0095U0003);
      MT506.U0098U0003 = new SwiftTagDefinition("Indicator_C_22F", "Method Of Interest Computation Indicator");
      MT506.U0098U0003.TagName = ":22F::";
      MT506.U0098U0003.Mandatory = false;
      MT506.U0099U0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0098U0003.Elements.Add((SwiftDefinitionElement) MT506.U0099U0003);
      MT506.U009AU0003 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U0098U0003.Elements.Add((SwiftDefinitionElement) MT506.U009AU0003);
      MT506.U009BU0003 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U0098U0003.Elements.Add((SwiftDefinitionElement) MT506.U009BU0003);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0098U0003);
      MT506.U009CU0003 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U009CU0003.Multiple = true;
      MT506.U009DU0003 = new SwiftTagDefinition("Rate_C_92A", "Rate");
      MT506.U009DU0003.TagName = ":92A::";
      MT506.U009DU0003.Multiple = true;
      MT506.U009EU0003 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009DU0003.Elements.Add((SwiftDefinitionElement) MT506.U009EU0003);
      MT506.U009FU0003 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT506.U009DU0003.Elements.Add((SwiftDefinitionElement) MT506.U009FU0003);
      MT506.U009CU0003.Elements.Add((SwiftDefinitionElement) MT506.U009DU0003);
      MT506.U0001U0004 = new SwiftTagDefinition("Rate_C_92B", "Rate");
      MT506.U0001U0004.TagName = ":92B::";
      MT506.U0001U0004.Multiple = true;
      MT506.U0002U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0001U0004.Elements.Add((SwiftDefinitionElement) MT506.U0002U0004);
      MT506.U0003U0004 = new SwiftTagSubItemDefinition("Rate", "Rate");
      MT506.U0004U0004 = new SwiftTagSubItemDefinition("FirstCurrencyCode", "Currency Code");
      MT506.U0003U0004.Elements.Add((SwiftDefinitionElement) MT506.U0004U0004);
      MT506.U0005U0004 = new SwiftTagSubItemDefinition("SecondCurrencyCode", "Curency Code");
      MT506.U0003U0004.Elements.Add((SwiftDefinitionElement) MT506.U0005U0004);
      MT506.U0006U0004 = new SwiftTagSubItemDefinition("Rate_1", "Rate");
      MT506.U0003U0004.Elements.Add((SwiftDefinitionElement) MT506.U0006U0004);
      MT506.U0001U0004.Elements.Add((SwiftDefinitionElement) MT506.U0003U0004);
      MT506.U009CU0003.Elements.Add((SwiftDefinitionElement) MT506.U0001U0004);
      MT506.U0007U0004 = new SwiftTagDefinition("Narrative_C_70D", "Reason Narrative");
      MT506.U0007U0004.TagName = ":70D::";
      MT506.U0007U0004.Mandatory = false;
      MT506.U0007U0004.Multiple = true;
      MT506.U0008U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0007U0004.Elements.Add((SwiftDefinitionElement) MT506.U0008U0004);
      MT506.U000EU0004 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT506.U0007U0004.Elements.Add((SwiftDefinitionElement) MT506.U000EU0004);
      MT506.U009CU0003.Elements.Add((SwiftDefinitionElement) MT506.U0007U0004);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U009CU0003);
      MT506.U000FU0004 = new SwiftTagSequenceDefinition("SequenceC1", "Securities Valuation Details");
      MT506.U000FU0004.Mandatory = false;
      MT506.U0010U0004 = new SwiftTagDefinition("StartOfBlock_C1_16R", "Start Of Block");
      MT506.U0010U0004.TagName = ":16R:SECS";
      MT506.U0011U0004 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U0011U0004.Mandatory = false;
      MT506.U0010U0004.Elements.Add((SwiftDefinitionElement) MT506.U0011U0004);
      MT506.U000FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0010U0004);
      MT506.U0012U0004 = new SwiftTagDefinition("Amount_C1_19B", "Market Price Amount");
      MT506.U0012U0004.TagName = ":19B::";
      MT506.U0013U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0012U0004.Elements.Add((SwiftDefinitionElement) MT506.U0013U0004);
      MT506.U0014U0004 = new SwiftTagSubItemDefinition("Amount", " Amount");
      MT506.U0015U0004 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U0014U0004.Elements.Add((SwiftDefinitionElement) MT506.U0015U0004);
      MT506.U0016U0004 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U0014U0004.Elements.Add((SwiftDefinitionElement) MT506.U0016U0004);
      MT506.U0012U0004.Elements.Add((SwiftDefinitionElement) MT506.U0014U0004);
      MT506.U000FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0012U0004);
      MT506.U0017U0004 = new SwiftTagDefinition("IdentificationOfFinancialInstrument_C1_35B", "Identification Of Financial Instrument");
      MT506.U0017U0004.TagName = ":35B:";
      MT506.U0018U0004 = new SwiftTagSubItemDefinition("IdentificationOfSecurity", "Identification Of Security");
      MT506.U0018U0004.Mandatory = false;
      MT506.U0019U0004 = new SwiftTagSubItemDefinition("IdentificationOfSecurity_1", "Identification Of Security ");
      MT506.U0018U0004.Elements.Add((SwiftDefinitionElement) MT506.U0019U0004);
      MT506.U0017U0004.Elements.Add((SwiftDefinitionElement) MT506.U0018U0004);
      MT506.U001AU0004 = new SwiftTagSubItemDefinition("DescriptionOfSecurity", "Description Of Security");
      MT506.U001AU0004.Mandatory = false;
      MT506.U0017U0004.Elements.Add((SwiftDefinitionElement) MT506.U001AU0004);
      MT506.U000FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0017U0004);
      MT506.U001BU0004 = new SwiftTagDefinition("QuantityOfFinancialInstrument_C1_36B", "Quantity Of Securities Valued");
      MT506.U001BU0004.TagName = ":36B::";
      MT506.U001CU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001BU0004.Elements.Add((SwiftDefinitionElement) MT506.U001CU0004);
      MT506.U001DU0004 = new SwiftTagSubItemDefinition("QuantityOfFinancialInstrument", "Quantity Of Securities Valued");
      MT506.U001EU0004 = new SwiftTagSubItemDefinition("QuantityTypeCode", "Quantity Type Code");
      MT506.U001DU0004.Elements.Add((SwiftDefinitionElement) MT506.U001EU0004);
      MT506.U001FU0004 = new SwiftTagSubItemDefinition("Quantity", "Quantity");
      MT506.U001DU0004.Elements.Add((SwiftDefinitionElement) MT506.U001FU0004);
      MT506.U001BU0004.Elements.Add((SwiftDefinitionElement) MT506.U001DU0004);
      MT506.U000FU0004.Elements.Add((SwiftDefinitionElement) MT506.U001BU0004);
      MT506.U007FU0004 = new SwiftTagDefinition("Rate_C1_92A", "Securities Haircut");
      MT506.U007FU0004.TagName = ":92A::";
      MT506.U0080U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U007FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0080U0004);
      MT506.U0081U0004 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT506.U007FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0081U0004);
      MT506.U000FU0004.Elements.Add((SwiftDefinitionElement) MT506.U007FU0004);
      MT506.U0082U0004 = new SwiftTagDefinition("EndOfBlock_C1_16S", "End Of Block");
      MT506.U0082U0004.TagName = ":16S:SECS";
      MT506.U0083U0004 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0083U0004.Mandatory = false;
      MT506.U0082U0004.Elements.Add((SwiftDefinitionElement) MT506.U0083U0004);
      MT506.U000FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0082U0004);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U000FU0004);
      MT506.U0084U0004 = new SwiftTagSequenceDefinition("SequenceC2", "Treasury Valuation Details");
      MT506.U0084U0004.Mandatory = false;
      MT506.U0086U0004 = new SwiftTagDefinition("StartOfBlock_C2_16R", "Start Of Block");
      MT506.U0086U0004.TagName = ":16R:TREA";
      MT506.U0087U0004 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U0087U0004.Mandatory = false;
      MT506.U0086U0004.Elements.Add((SwiftDefinitionElement) MT506.U0087U0004);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U0086U0004);
      MT506.U0088U0004 = new SwiftTagDefinition("Date_C2_98A", "Date");
      MT506.U0088U0004.TagName = ":98A::";
      MT506.U0088U0004.Multiple = true;
      MT506.U0089U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0088U0004.Elements.Add((SwiftDefinitionElement) MT506.U0089U0004);
      MT506.U008AU0004 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U0088U0004.Elements.Add((SwiftDefinitionElement) MT506.U008AU0004);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U0088U0004);
      MT506.U008BU0004 = new SwiftTagDefinition("Amount_C2_19B", "Amount");
      MT506.U008BU0004.TagName = ":19B::";
      MT506.U008BU0004.Mandatory = false;
      MT506.U008BU0004.Multiple = true;
      MT506.U008CU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008BU0004.Elements.Add((SwiftDefinitionElement) MT506.U008CU0004);
      MT506.U008DU0004 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT506.U008EU0004 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U008DU0004.Elements.Add((SwiftDefinitionElement) MT506.U008EU0004);
      MT506.U008FU0004 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U008DU0004.Elements.Add((SwiftDefinitionElement) MT506.U008FU0004);
      MT506.U008BU0004.Elements.Add((SwiftDefinitionElement) MT506.U008DU0004);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U008BU0004);
      MT506.U0090U0004 = new SwiftTagDefinition("Narrative_C2_70C", "Commodity Index Narrative");
      MT506.U0090U0004.TagName = ":70C::";
      MT506.U0090U0004.Mandatory = false;
      MT506.U0091U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0090U0004.Elements.Add((SwiftDefinitionElement) MT506.U0091U0004);
      MT506.U0092U0004 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT506.U0090U0004.Elements.Add((SwiftDefinitionElement) MT506.U0092U0004);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U0090U0004);
      MT506.U0093U0004 = new SwiftTagDefinition("TypeOfFinancialInstrument_C2_12B", "Option Type");
      MT506.U0093U0004.TagName = ":12B::";
      MT506.U0093U0004.Mandatory = false;
      MT506.U0094U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0093U0004.Elements.Add((SwiftDefinitionElement) MT506.U0094U0004);
      MT506.U0095U0004 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U0093U0004.Elements.Add((SwiftDefinitionElement) MT506.U0095U0004);
      MT506.U0096U0004 = new SwiftTagSubItemDefinition("Type", " Type");
      MT506.U0093U0004.Elements.Add((SwiftDefinitionElement) MT506.U0096U0004);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U0093U0004);
      MT506.U0097U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0097U0004.Mandatory = false;
      MT506.U0097U0004.Multiple = true;
      MT506.U0098U0004 = new SwiftTagDefinition("Price_C2_90A", "Price");
      MT506.U0098U0004.TagName = ":90A::";
      MT506.U0098U0004.Multiple = true;
      MT506.U0099U0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0098U0004.Elements.Add((SwiftDefinitionElement) MT506.U0099U0004);
      MT506.U009AU0004 = new SwiftTagSubItemDefinition("Price", "Price");
      MT506.U009BU0004 = new SwiftTagSubItemDefinition("PercentageTypeCode", "Percentage Type Code");
      MT506.U009AU0004.Elements.Add((SwiftDefinitionElement) MT506.U009BU0004);
      MT506.U009CU0004 = new SwiftTagSubItemDefinition("Price_1", "Price");
      MT506.U009AU0004.Elements.Add((SwiftDefinitionElement) MT506.U009CU0004);
      MT506.U0098U0004.Elements.Add((SwiftDefinitionElement) MT506.U009AU0004);
      MT506.U0097U0004.Elements.Add((SwiftDefinitionElement) MT506.U0098U0004);
      MT506.U009DU0004 = new SwiftTagDefinition("Price_C2_90B", "Deal Price");
      MT506.U009DU0004.TagName = ":90B::";
      MT506.U009DU0004.Multiple = true;
      MT506.U009EU0004 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009DU0004.Elements.Add((SwiftDefinitionElement) MT506.U009EU0004);
      MT506.U009FU0004 = new SwiftTagSubItemDefinition("Price", "Deal Price");
      MT506.U0001U0005 = new SwiftTagSubItemDefinition("AmountTypeCode", "Amount Type Code");
      MT506.U009FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0001U0005);
      MT506.U0002U0005 = new SwiftTagSubItemDefinition("CurrencyCodeAndPrice", "Currency Code, Price");
      MT506.U0003U0005 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U0002U0005.Elements.Add((SwiftDefinitionElement) MT506.U0003U0005);
      MT506.U0004U0005 = new SwiftTagSubItemDefinition("Price", "Price");
      MT506.U0002U0005.Elements.Add((SwiftDefinitionElement) MT506.U0004U0005);
      MT506.U009FU0004.Elements.Add((SwiftDefinitionElement) MT506.U0002U0005);
      MT506.U009DU0004.Elements.Add((SwiftDefinitionElement) MT506.U009FU0004);
      MT506.U0097U0004.Elements.Add((SwiftDefinitionElement) MT506.U009DU0004);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U0097U0004);
      MT506.U0005U0005 = new SwiftTagDefinition("EndOfBlock_C2_16S", "End Of Block");
      MT506.U0005U0005.TagName = ":16S:TREA";
      MT506.U0006U0005 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0006U0005.Mandatory = false;
      MT506.U0005U0005.Elements.Add((SwiftDefinitionElement) MT506.U0006U0005);
      MT506.U0084U0004.Elements.Add((SwiftDefinitionElement) MT506.U0005U0005);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0084U0004);
      MT506.U0007U0005 = new SwiftTagSequenceDefinition("SequenceC3", "Repo Valuation Details");
      MT506.U0007U0005.Mandatory = false;
      MT506.U0008U0005 = new SwiftTagDefinition("StartOfBlock_C3_16R", "Start Of Block");
      MT506.U0008U0005.TagName = ":16R:REPV";
      MT506.U000EU0005 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U000EU0005.Mandatory = false;
      MT506.U0008U0005.Elements.Add((SwiftDefinitionElement) MT506.U000EU0005);
      MT506.U0007U0005.Elements.Add((SwiftDefinitionElement) MT506.U0008U0005);
      MT506.U000FU0005 = new SwiftTagDefinition("Date_C3_98A", "Date");
      MT506.U000FU0005.TagName = ":98A::";
      MT506.U000FU0005.Multiple = true;
      MT506.U0010U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U000FU0005.Elements.Add((SwiftDefinitionElement) MT506.U0010U0005);
      MT506.U0011U0005 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U000FU0005.Elements.Add((SwiftDefinitionElement) MT506.U0011U0005);
      MT506.U0007U0005.Elements.Add((SwiftDefinitionElement) MT506.U000FU0005);
      MT506.U0012U0005 = new SwiftTagDefinition("Amount_C3_19B", "Amount");
      MT506.U0012U0005.TagName = ":19B::";
      MT506.U0012U0005.Multiple = true;
      MT506.U0013U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0012U0005.Elements.Add((SwiftDefinitionElement) MT506.U0013U0005);
      MT506.U0014U0005 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT506.U0015U0005 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U0014U0005.Elements.Add((SwiftDefinitionElement) MT506.U0015U0005);
      MT506.U0016U0005 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U0014U0005.Elements.Add((SwiftDefinitionElement) MT506.U0016U0005);
      MT506.U0012U0005.Elements.Add((SwiftDefinitionElement) MT506.U0014U0005);
      MT506.U0007U0005.Elements.Add((SwiftDefinitionElement) MT506.U0012U0005);
      MT506.U0017U0005 = new SwiftTagDefinition("Rate_C3_92A", "Repurchase Rate");
      MT506.U0017U0005.TagName = ":92A::";
      MT506.U0018U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0017U0005.Elements.Add((SwiftDefinitionElement) MT506.U0018U0005);
      MT506.U0019U0005 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT506.U0017U0005.Elements.Add((SwiftDefinitionElement) MT506.U0019U0005);
      MT506.U0007U0005.Elements.Add((SwiftDefinitionElement) MT506.U0017U0005);
      MT506.U001AU0005 = new SwiftTagDefinition("EndOfBlock_C3_16S", "End Of Block");
      MT506.U001AU0005.TagName = ":16S:REPV";
      MT506.U001BU0005 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U001BU0005.Mandatory = false;
      MT506.U001AU0005.Elements.Add((SwiftDefinitionElement) MT506.U001BU0005);
      MT506.U0007U0005.Elements.Add((SwiftDefinitionElement) MT506.U001AU0005);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U0007U0005);
      MT506.U001CU0005 = new SwiftTagDefinition("EndOfBlock_C_16S", "End Of Block");
      MT506.U001CU0005.TagName = ":16S:EXPD";
      MT506.U001DU0005 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U001DU0005.Mandatory = false;
      MT506.U001CU0005.Elements.Add((SwiftDefinitionElement) MT506.U001DU0005);
      MT506.U0016U0003.Elements.Add((SwiftDefinitionElement) MT506.U001CU0005);
      MT506.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT506.U0016U0003);
      MT506.U001EU0005 = new SwiftTagSequenceDefinition("SequenceD", "Collateral Details");
      MT506.U001EU0005.Mandatory = false;
      MT506.U001EU0005.Multiple = true;
      MT506.U001FU0005 = new SwiftTagDefinition("StartOfBlock_D_16R", "Start Of Block");
      MT506.U001FU0005.TagName = ":16R:COLD";
      MT506.U007FU0005 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT506.U007FU0005.Mandatory = false;
      MT506.U001FU0005.Elements.Add((SwiftDefinitionElement) MT506.U007FU0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U001FU0005);
      MT506.U0080U0005 = new SwiftTagDefinition("Reference_D_20C", "Collateral Reference");
      MT506.U0080U0005.TagName = ":20C::";
      MT506.U0081U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0080U0005.Elements.Add((SwiftDefinitionElement) MT506.U0081U0005);
      MT506.U0082U0005 = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT506.U0080U0005.Elements.Add((SwiftDefinitionElement) MT506.U0082U0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0080U0005);
      MT506.U0083U0005 = new SwiftTagDefinition("Indicator_D_22H", "Collateral Type Indicator");
      MT506.U0083U0005.TagName = ":22H::";
      MT506.U0084U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0083U0005.Elements.Add((SwiftDefinitionElement) MT506.U0084U0005);
      MT506.U0086U0005 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U0083U0005.Elements.Add((SwiftDefinitionElement) MT506.U0086U0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0083U0005);
      MT506.U0087U0005 = new SwiftTagDefinition("Status_D_25D", "Settlement Status");
      MT506.U0087U0005.TagName = ":25D::";
      MT506.U0087U0005.Mandatory = false;
      MT506.U0088U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0087U0005.Elements.Add((SwiftDefinitionElement) MT506.U0088U0005);
      MT506.U0089U0005 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U0087U0005.Elements.Add((SwiftDefinitionElement) MT506.U0089U0005);
      MT506.U008AU0005 = new SwiftTagSubItemDefinition("StatusCode", "Status Code");
      MT506.U0087U0005.Elements.Add((SwiftDefinitionElement) MT506.U008AU0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0087U0005);
      MT506.U008BU0005 = new SwiftTagDefinition("Amount_D_19B", "Amount");
      MT506.U008BU0005.TagName = ":19B::";
      MT506.U008BU0005.Multiple = true;
      MT506.U008CU0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008BU0005.Elements.Add((SwiftDefinitionElement) MT506.U008CU0005);
      MT506.U008DU0005 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT506.U008EU0005 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U008DU0005.Elements.Add((SwiftDefinitionElement) MT506.U008EU0005);
      MT506.U008FU0005 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U008DU0005.Elements.Add((SwiftDefinitionElement) MT506.U008FU0005);
      MT506.U008BU0005.Elements.Add((SwiftDefinitionElement) MT506.U008DU0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U008BU0005);
      MT506.U0090U0005 = new SwiftTagDefinition("NumberCount_D_99A", "Number Of Days Accrued");
      MT506.U0090U0005.TagName = ":99A::";
      MT506.U0090U0005.Mandatory = false;
      MT506.U0091U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0090U0005.Elements.Add((SwiftDefinitionElement) MT506.U0091U0005);
      MT506.U0092U0005 = new SwiftTagSubItemDefinition("SignNumber", "Sign Number");
      MT506.U0090U0005.Elements.Add((SwiftDefinitionElement) MT506.U0092U0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0090U0005);
      MT506.U0093U0005 = new SwiftTagDefinition("Indicator_D_22F", "Method Of Interest Computation Indicator");
      MT506.U0093U0005.TagName = ":22F::";
      MT506.U0093U0005.Mandatory = false;
      MT506.U0094U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0093U0005.Elements.Add((SwiftDefinitionElement) MT506.U0094U0005);
      MT506.U0095U0005 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U0093U0005.Elements.Add((SwiftDefinitionElement) MT506.U0095U0005);
      MT506.U0096U0005 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U0093U0005.Elements.Add((SwiftDefinitionElement) MT506.U0096U0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0093U0005);
      MT506.U0097U0005 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0097U0005.Multiple = true;
      MT506.U0098U0005 = new SwiftTagDefinition("Rate_D_92A", "Rate");
      MT506.U0098U0005.TagName = ":92A::";
      MT506.U0098U0005.Multiple = true;
      MT506.U0099U0005 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0098U0005.Elements.Add((SwiftDefinitionElement) MT506.U0099U0005);
      MT506.U009AU0005 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT506.U0098U0005.Elements.Add((SwiftDefinitionElement) MT506.U009AU0005);
      MT506.U0097U0005.Elements.Add((SwiftDefinitionElement) MT506.U0098U0005);
      MT506.U009BU0005 = new SwiftTagDefinition("Rate_D_92B", "Rate");
      MT506.U009BU0005.TagName = ":92B::";
      MT506.U009BU0005.Multiple = true;
      MT506.U009CU0005 = new SwiftTagSubItemDefinition("Qualifier", "");
      MT506.U009BU0005.Elements.Add((SwiftDefinitionElement) MT506.U009CU0005);
      MT506.U009DU0005 = new SwiftTagSubItemDefinition("Rate", "Rate");
      MT506.U009EU0005 = new SwiftTagSubItemDefinition("FirstCurrencyCode", "Currency Code");
      MT506.U009DU0005.Elements.Add((SwiftDefinitionElement) MT506.U009EU0005);
      MT506.U009FU0005 = new SwiftTagSubItemDefinition("SecondCurrencyCode", "Curency Code");
      MT506.U009DU0005.Elements.Add((SwiftDefinitionElement) MT506.U009FU0005);
      MT506.U0001U0006 = new SwiftTagSubItemDefinition("Rate_1", "Rate");
      MT506.U009DU0005.Elements.Add((SwiftDefinitionElement) MT506.U0001U0006);
      MT506.U009BU0005.Elements.Add((SwiftDefinitionElement) MT506.U009DU0005);
      MT506.U0097U0005.Elements.Add((SwiftDefinitionElement) MT506.U009BU0005);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0097U0005);
      MT506.U0002U0006 = new SwiftTagSequenceDefinition("SequenceD1", "Securities Collateral Details");
      MT506.U0002U0006.Mandatory = false;
      MT506.U0003U0006 = new SwiftTagDefinition("StartOfBlock_D1_16R", "Start Of Block");
      MT506.U0003U0006.TagName = ":16R:SCOL";
      MT506.U0004U0006 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U0004U0006.Mandatory = false;
      MT506.U0003U0006.Elements.Add((SwiftDefinitionElement) MT506.U0004U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U0003U0006);
      MT506.U0005U0006 = new SwiftTagDefinition("Amount_D1_19B", "Market Price Amount");
      MT506.U0005U0006.TagName = ":19B::";
      MT506.U0006U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0005U0006.Elements.Add((SwiftDefinitionElement) MT506.U0006U0006);
      MT506.U0007U0006 = new SwiftTagSubItemDefinition("Amount", " Amount");
      MT506.U0008U0006 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U0007U0006.Elements.Add((SwiftDefinitionElement) MT506.U0008U0006);
      MT506.U000EU0006 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U0007U0006.Elements.Add((SwiftDefinitionElement) MT506.U000EU0006);
      MT506.U0005U0006.Elements.Add((SwiftDefinitionElement) MT506.U0007U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U0005U0006);
      MT506.U000FU0006 = new SwiftTagDefinition("IdentificationOfFinancialInstrument_D1_35B", "Identification Of Financial Instrument");
      MT506.U000FU0006.TagName = ":35B:";
      MT506.U0010U0006 = new SwiftTagSubItemDefinition("IdentificationOfSecurity", "Identification Of Security");
      MT506.U0010U0006.Mandatory = false;
      MT506.U0011U0006 = new SwiftTagSubItemDefinition("IdentificationOfSecurity_1", "Identification Of Security ");
      MT506.U0010U0006.Elements.Add((SwiftDefinitionElement) MT506.U0011U0006);
      MT506.U000FU0006.Elements.Add((SwiftDefinitionElement) MT506.U0010U0006);
      MT506.U0012U0006 = new SwiftTagSubItemDefinition("DescriptionOfSecurity", "Description Of Security");
      MT506.U0012U0006.Mandatory = false;
      MT506.U000FU0006.Elements.Add((SwiftDefinitionElement) MT506.U0012U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U000FU0006);
      MT506.U0013U0006 = new SwiftTagDefinition("QuantityOfFinancialInstrument_D1_36B", "Quantity Of Securities Collateral");
      MT506.U0013U0006.TagName = ":36B::";
      MT506.U0014U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0013U0006.Elements.Add((SwiftDefinitionElement) MT506.U0014U0006);
      MT506.U0015U0006 = new SwiftTagSubItemDefinition("QuantityOfFinancialInstrument", "Quantity Of Securities Collateral");
      MT506.U0016U0006 = new SwiftTagSubItemDefinition("QuantityTypeCode", "Quantity Type Code");
      MT506.U0015U0006.Elements.Add((SwiftDefinitionElement) MT506.U0016U0006);
      MT506.U0017U0006 = new SwiftTagSubItemDefinition("Quantity", "Quantity");
      MT506.U0015U0006.Elements.Add((SwiftDefinitionElement) MT506.U0017U0006);
      MT506.U0013U0006.Elements.Add((SwiftDefinitionElement) MT506.U0015U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U0013U0006);
      MT506.U0018U0006 = new SwiftTagDefinition("Rate_D1_92A", "Securities Haircut");
      MT506.U0018U0006.TagName = ":92A::";
      MT506.U0019U0006 = new SwiftTagSubItemDefinition("Qualifier", "");
      MT506.U0018U0006.Elements.Add((SwiftDefinitionElement) MT506.U0019U0006);
      MT506.U001AU0006 = new SwiftTagSubItemDefinition("SignRate", "Sign Rate");
      MT506.U0018U0006.Elements.Add((SwiftDefinitionElement) MT506.U001AU0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U0018U0006);
      MT506.U001BU0006 = new SwiftTagDefinition("Date_D1_98A", "Expiry Date");
      MT506.U001BU0006.TagName = ":98A::";
      MT506.U001BU0006.Mandatory = false;
      MT506.U001CU0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U001BU0006.Elements.Add((SwiftDefinitionElement) MT506.U001CU0006);
      MT506.U001DU0006 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U001BU0006.Elements.Add((SwiftDefinitionElement) MT506.U001DU0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U001BU0006);
      MT506.U001EU0006 = new SwiftTagDefinition("Place_D1_94B", "Place");
      MT506.U001EU0006.TagName = ":94B::";
      MT506.U001EU0006.Mandatory = false;
      MT506.U001EU0006.Multiple = true;
      MT506.U001FU0006 = new SwiftTagSubItemDefinition("Qualifier", "");
      MT506.U001EU0006.Elements.Add((SwiftDefinitionElement) MT506.U001FU0006);
      MT506.U007FU0006 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U001EU0006.Elements.Add((SwiftDefinitionElement) MT506.U007FU0006);
      MT506.U0080U0006 = new SwiftTagSubItemDefinition("PlaceCode", "Place Code");
      MT506.U001EU0006.Elements.Add((SwiftDefinitionElement) MT506.U0080U0006);
      MT506.U0081U0006 = new SwiftTagSubItemDefinition("Narrative_94B", "Narrative");
      MT506.U0081U0006.Mandatory = false;
      MT506.U0082U0006 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT506.U0081U0006.Elements.Add((SwiftDefinitionElement) MT506.U0082U0006);
      MT506.U001EU0006.Elements.Add((SwiftDefinitionElement) MT506.U0081U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U001EU0006);
      MT506.U0083U0006 = new SwiftTagDefinition("Narrative_D1_70C", "Rating Narrative");
      MT506.U0083U0006.TagName = ":70C::";
      MT506.U0083U0006.Mandatory = false;
      MT506.U0084U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0083U0006.Elements.Add((SwiftDefinitionElement) MT506.U0084U0006);
      MT506.U0086U0006 = new SwiftTagSubItemDefinition("Narrative", "Narrative");
      MT506.U0083U0006.Elements.Add((SwiftDefinitionElement) MT506.U0086U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U0083U0006);
      MT506.U0087U0006 = new SwiftTagDefinition("EndOfBlock_D1_16S", "End Of Block");
      MT506.U0087U0006.TagName = ":16S:SCOL";
      MT506.U0088U0006 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0088U0006.Mandatory = false;
      MT506.U0087U0006.Elements.Add((SwiftDefinitionElement) MT506.U0088U0006);
      MT506.U0002U0006.Elements.Add((SwiftDefinitionElement) MT506.U0087U0006);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0002U0006);
      MT506.U0089U0006 = new SwiftTagSequenceDefinition("SequenceD2", "Cash Collateral Details");
      MT506.U0089U0006.Mandatory = false;
      MT506.U008AU0006 = new SwiftTagDefinition("StartOfBlock_D2_16R", "Start Of Block");
      MT506.U008AU0006.TagName = ":16R:CCOL";
      MT506.U008BU0006 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U008BU0006.Mandatory = false;
      MT506.U008AU0006.Elements.Add((SwiftDefinitionElement) MT506.U008BU0006);
      MT506.U0089U0006.Elements.Add((SwiftDefinitionElement) MT506.U008AU0006);
      MT506.U008CU0006 = new SwiftTagDefinition("Amount_D2_19B", "Deposit Amount");
      MT506.U008CU0006.TagName = ":19B::";
      MT506.U008DU0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008CU0006.Elements.Add((SwiftDefinitionElement) MT506.U008DU0006);
      MT506.U008EU0006 = new SwiftTagSubItemDefinition("Amount", " Amount");
      MT506.U008FU0006 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U008EU0006.Elements.Add((SwiftDefinitionElement) MT506.U008FU0006);
      MT506.U0090U0006 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U008EU0006.Elements.Add((SwiftDefinitionElement) MT506.U0090U0006);
      MT506.U008CU0006.Elements.Add((SwiftDefinitionElement) MT506.U008EU0006);
      MT506.U0089U0006.Elements.Add((SwiftDefinitionElement) MT506.U008CU0006);
      MT506.U0091U0006 = new SwiftTagDefinition("Indicator_D2_22H", "Type Of Deposit Indicator");
      MT506.U0091U0006.TagName = ":22H::";
      MT506.U0092U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0091U0006.Elements.Add((SwiftDefinitionElement) MT506.U0092U0006);
      MT506.U0093U0006 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U0091U0006.Elements.Add((SwiftDefinitionElement) MT506.U0093U0006);
      MT506.U0089U0006.Elements.Add((SwiftDefinitionElement) MT506.U0091U0006);
      MT506.U0094U0006 = new SwiftTagDefinition("Date_D2_98A", "Maturity Date");
      MT506.U0094U0006.TagName = ":98A::";
      MT506.U0094U0006.Mandatory = false;
      MT506.U0095U0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0094U0006.Elements.Add((SwiftDefinitionElement) MT506.U0095U0006);
      MT506.U0096U0006 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U0094U0006.Elements.Add((SwiftDefinitionElement) MT506.U0096U0006);
      MT506.U0089U0006.Elements.Add((SwiftDefinitionElement) MT506.U0094U0006);
      MT506.U0097U0006 = new SwiftTagDefinition("EndOfBlock_D2_16S", "End Of Block");
      MT506.U0097U0006.TagName = ":16S:CCOL";
      MT506.U0098U0006 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0098U0006.Mandatory = false;
      MT506.U0097U0006.Elements.Add((SwiftDefinitionElement) MT506.U0098U0006);
      MT506.U0089U0006.Elements.Add((SwiftDefinitionElement) MT506.U0097U0006);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0089U0006);
      MT506.U0099U0006 = new SwiftTagSequenceDefinition("SequenceD3", "Other Collateral Details");
      MT506.U0099U0006.Mandatory = false;
      MT506.U009AU0006 = new SwiftTagDefinition("StartOfBlock_D3_16R", "Start Of Block");
      MT506.U009AU0006.TagName = ":16R:BCOL";
      MT506.U009BU0006 = new SwiftTagSubItemDefinition("StartOFBlock", "Start OF Block");
      MT506.U009BU0006.Mandatory = false;
      MT506.U009AU0006.Elements.Add((SwiftDefinitionElement) MT506.U009BU0006);
      MT506.U0099U0006.Elements.Add((SwiftDefinitionElement) MT506.U009AU0006);
      MT506.U009CU0006 = new SwiftTagDefinition("Indicator_D3_22H", "Type Of Other Collateral Indicator");
      MT506.U009CU0006.TagName = ":22H::";
      MT506.U009DU0006 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U009CU0006.Elements.Add((SwiftDefinitionElement) MT506.U009DU0006);
      MT506.U009EU0006 = new SwiftTagSubItemDefinition("Indicator", "Indicator");
      MT506.U009CU0006.Elements.Add((SwiftDefinitionElement) MT506.U009EU0006);
      MT506.U0099U0006.Elements.Add((SwiftDefinitionElement) MT506.U009CU0006);
      MT506.U009FU0006 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U009FU0006.Multiple = true;
      MT506.U0001U0007 = new SwiftTagDefinition("Date_D3_98A", " Date");
      MT506.U0001U0007.TagName = ":98A::";
      MT506.U0001U0007.Multiple = true;
      MT506.U0002U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0001U0007.Elements.Add((SwiftDefinitionElement) MT506.U0002U0007);
      MT506.U0003U0007 = new SwiftTagSubItemDefinition("Date", "Date");
      MT506.U0001U0007.Elements.Add((SwiftDefinitionElement) MT506.U0003U0007);
      MT506.U009FU0006.Elements.Add((SwiftDefinitionElement) MT506.U0001U0007);
      MT506.U0004U0007 = new SwiftTagDefinition("DateTime_D3_98B", " Date and Time");
      MT506.U0004U0007.TagName = ":98B::";
      MT506.U0004U0007.Multiple = true;
      MT506.U0005U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0004U0007.Elements.Add((SwiftDefinitionElement) MT506.U0005U0007);
      MT506.U0006U0007 = new SwiftTagSubItemDefinition("DataSource", "Data Source Scheme ");
      MT506.U0004U0007.Elements.Add((SwiftDefinitionElement) MT506.U0006U0007);
      MT506.U0007U0007 = new SwiftTagSubItemDefinition("DateCode", "Date Code");
      MT506.U0004U0007.Elements.Add((SwiftDefinitionElement) MT506.U0007U0007);
      MT506.U009FU0006.Elements.Add((SwiftDefinitionElement) MT506.U0004U0007);
      MT506.U0099U0006.Elements.Add((SwiftDefinitionElement) MT506.U009FU0006);
      MT506.U0008U0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0008U0007.Multiple = true;
      MT506.U000EU0007 = new SwiftTagDefinition("Party_D3_95P", "Issuer");
      MT506.U000EU0007.TagName = ":95P::";
      MT506.U000FU0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U000EU0007.Elements.Add((SwiftDefinitionElement) MT506.U000FU0007);
      MT506.U0010U0007 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT506.U000EU0007.Elements.Add((SwiftDefinitionElement) MT506.U0010U0007);
      MT506.U0008U0007.Elements.Add((SwiftDefinitionElement) MT506.U000EU0007);
      MT506.U0011U0007 = new SwiftTagDefinition("Party_D3_95Q", "Issuer");
      MT506.U0011U0007.TagName = ":95Q::";
      MT506.U0012U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0011U0007.Elements.Add((SwiftDefinitionElement) MT506.U0012U0007);
      MT506.U0013U0007 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT506.U0011U0007.Elements.Add((SwiftDefinitionElement) MT506.U0013U0007);
      MT506.U0008U0007.Elements.Add((SwiftDefinitionElement) MT506.U0011U0007);
      MT506.U0014U0007 = new SwiftTagDefinition("Party_D3_95R", "Issuer");
      MT506.U0014U0007.TagName = ":95R::";
      MT506.U0015U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0014U0007.Elements.Add((SwiftDefinitionElement) MT506.U0015U0007);
      MT506.U0016U0007 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT506.U0014U0007.Elements.Add((SwiftDefinitionElement) MT506.U0016U0007);
      MT506.U0017U0007 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT506.U0014U0007.Elements.Add((SwiftDefinitionElement) MT506.U0017U0007);
      MT506.U0008U0007.Elements.Add((SwiftDefinitionElement) MT506.U0014U0007);
      MT506.U0099U0006.Elements.Add((SwiftDefinitionElement) MT506.U0008U0007);
      MT506.U0018U0007 = new SwiftTagDefinition("Amount_D3_19B", "Amount");
      MT506.U0018U0007.TagName = ":19B::";
      MT506.U0019U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0018U0007.Elements.Add((SwiftDefinitionElement) MT506.U0019U0007);
      MT506.U001AU0007 = new SwiftTagSubItemDefinition("Amount", "Amount");
      MT506.U001BU0007 = new SwiftTagSubItemDefinition("CurrencyCode", "Currency Code");
      MT506.U001AU0007.Elements.Add((SwiftDefinitionElement) MT506.U001BU0007);
      MT506.U001CU0007 = new SwiftTagSubItemDefinition("Amount_1", "Amount");
      MT506.U001AU0007.Elements.Add((SwiftDefinitionElement) MT506.U001CU0007);
      MT506.U0018U0007.Elements.Add((SwiftDefinitionElement) MT506.U001AU0007);
      MT506.U0099U0006.Elements.Add((SwiftDefinitionElement) MT506.U0018U0007);
      MT506.U001DU0007 = new SwiftTagDefinition("EndOfBlock_D3_16S", "End Of Block");
      MT506.U001DU0007.TagName = ":16S:BCOL";
      MT506.U001EU0007 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U001EU0007.Mandatory = false;
      MT506.U001DU0007.Elements.Add((SwiftDefinitionElement) MT506.U001EU0007);
      MT506.U0099U0006.Elements.Add((SwiftDefinitionElement) MT506.U001DU0007);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U0099U0006);
      MT506.U001FU0007 = new SwiftTagDefinition("EndOfBlock_D_16S", "End Of Block");
      MT506.U001FU0007.TagName = ":16S:COLD";
      MT506.U007FU0007 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U007FU0007.Mandatory = false;
      MT506.U001FU0007.Elements.Add((SwiftDefinitionElement) MT506.U007FU0007);
      MT506.U001EU0005.Elements.Add((SwiftDefinitionElement) MT506.U001FU0007);
      MT506.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT506.U001EU0005);
      MT506.U0080U0007 = new SwiftTagSequenceDefinition("SequenceE", "Additional Information");
      MT506.U0080U0007.Mandatory = false;
      MT506.U0081U0007 = new SwiftTagDefinition("StartOfBlock_E_16R", "Start Of Block");
      MT506.U0081U0007.TagName = ":16R:ADDINFO";
      MT506.U0082U0007 = new SwiftTagSubItemDefinition("StartOfBlock", "Start Of Block");
      MT506.U0082U0007.Mandatory = false;
      MT506.U0081U0007.Elements.Add((SwiftDefinitionElement) MT506.U0082U0007);
      MT506.U0080U0007.Elements.Add((SwiftDefinitionElement) MT506.U0081U0007);
      MT506.U0083U0007 = new SwiftTagChoiceDefinition("Choice", "");
      MT506.U0083U0007.Mandatory = false;
      MT506.U0083U0007.Multiple = true;
      MT506.U0084U0007 = new SwiftTagDefinition("Party_E_95P", "Party");
      MT506.U0084U0007.TagName = ":95P::";
      MT506.U0084U0007.Multiple = true;
      MT506.U0086U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0084U0007.Elements.Add((SwiftDefinitionElement) MT506.U0086U0007);
      MT506.U0087U0007 = new SwiftTagSubItemDefinition("BankIdentifierCode", "Bank Identifier Code");
      MT506.U0084U0007.Elements.Add((SwiftDefinitionElement) MT506.U0087U0007);
      MT506.U0083U0007.Elements.Add((SwiftDefinitionElement) MT506.U0084U0007);
      MT506.U0088U0007 = new SwiftTagDefinition("Party_E_95Q", "Party");
      MT506.U0088U0007.TagName = ":95Q::";
      MT506.U0088U0007.Multiple = true;
      MT506.U0089U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U0088U0007.Elements.Add((SwiftDefinitionElement) MT506.U0089U0007);
      MT506.U008AU0007 = new SwiftTagSubItemDefinition("NameAndAddress_95Q", "Name And Address");
      MT506.U0088U0007.Elements.Add((SwiftDefinitionElement) MT506.U008AU0007);
      MT506.U0083U0007.Elements.Add((SwiftDefinitionElement) MT506.U0088U0007);
      MT506.U008BU0007 = new SwiftTagDefinition("Party_E_95R", "Party");
      MT506.U008BU0007.TagName = ":95R::";
      MT506.U008BU0007.Multiple = true;
      MT506.U008CU0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008BU0007.Elements.Add((SwiftDefinitionElement) MT506.U008CU0007);
      MT506.U008DU0007 = new SwiftTagSubItemDefinition("DataSourceScheme", "Data Source Scheme");
      MT506.U008BU0007.Elements.Add((SwiftDefinitionElement) MT506.U008DU0007);
      MT506.U008EU0007 = new SwiftTagSubItemDefinition("ProprietaryCode", "Proprietary Code");
      MT506.U008BU0007.Elements.Add((SwiftDefinitionElement) MT506.U008EU0007);
      MT506.U0083U0007.Elements.Add((SwiftDefinitionElement) MT506.U008BU0007);
      MT506.U0080U0007.Elements.Add((SwiftDefinitionElement) MT506.U0083U0007);
      MT506.U008FU0007 = new SwiftTagDefinition("Amount_E_19A", "Amount");
      MT506.U008FU0007.TagName = ":19A::";
      MT506.U008FU0007.Mandatory = false;
      MT506.U008FU0007.Multiple = true;
      MT506.U0090U0007 = new SwiftTagSubItemDefinition("Qualifier", "Qualifier");
      MT506.U008FU0007.Elements.Add((SwiftDefinitionElement) MT506.U0090U0007);
      MT506.U0091U0007 = new SwiftTagSubItemDefinition("SignCodeAmount", "Sign Currency Code Amount");
      MT506.U008FU0007.Elements.Add((SwiftDefinitionElement) MT506.U0091U0007);
      MT506.U0080U0007.Elements.Add((SwiftDefinitionElement) MT506.U008FU0007);
      MT506.U0092U0007 = new SwiftTagDefinition("EndOfBlock_E_16S", "End Of Block");
      MT506.U0092U0007.TagName = ":16S:ADDINFO";
      MT506.U0093U0007 = new SwiftTagSubItemDefinition("EndOfBlock", "End Of Block");
      MT506.U0093U0007.Mandatory = false;
      MT506.U0092U0007.Elements.Add((SwiftDefinitionElement) MT506.U0093U0007);
      MT506.U0080U0007.Elements.Add((SwiftDefinitionElement) MT506.U0092U0007);
      MT506.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT506.U0080U0007);
    }

    public class SequenceAClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT506.U0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_A_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0003);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_A
      {
        get
        {
          return this.StartOfBlock_A_16R;
        }
      }

      [Description("Page Number/Continuation Indicator")]
      public Tag28E PageNumberAndContinuationIndicator_A_28E
      {
        get
        {
          return new Tag28E((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0005);
        }
      }

      [Description("Page Number/Continuation Indicator")]
      public Tag28E Tag28E_PageNumberAndContinuationIndicator_A
      {
        get
        {
          return this.PageNumberAndContinuationIndicator_A_28E;
        }
      }

      [Description("Reference")]
      public Tag20C[] Reference_A_20C
      {
        get
        {
          int index = -1;
          List<Tag20C> list = new List<Tag20C>();
          int count;
          do
          {
            ++index;
            Tag20C tag20C = new Tag20C((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0008);
            count = this.ListTags((SwiftElement) tag20C).Count;
            if (count > 0)
              list.Add(tag20C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Reference")]
      public Tag20C[] Tag20C_Reference_A
      {
        get
        {
          return this.Reference_A_20C;
        }
      }

      [Description("Function Of The Message")]
      public Tag23G FunctionOfTheMessage_A_23G
      {
        get
        {
          return new Tag23G((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0010);
        }
      }

      [Description("Function Of The Message")]
      public Tag23G Tag23G_FunctionOfTheMessage_A
      {
        get
        {
          return this.FunctionOfTheMessage_A_23G;
        }
      }

      [Description("Agreement")]
      public MT506.SequenceAClass.SequenceA1Class[] SequenceA1
      {
        get
        {
          int index = -1;
          List<MT506.SequenceAClass.SequenceA1Class> list = new List<MT506.SequenceAClass.SequenceA1Class>();
          int count;
          do
          {
            ++index;
            MT506.SequenceAClass.SequenceA1Class sequenceA1Class = new MT506.SequenceAClass.SequenceA1Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceA1Class).Count;
            if (count > 0)
              list.Add(sequenceA1Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Preparation Date")]
      public Tag98A Date_A_98A
      {
        get
        {
          return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0088);
        }
      }

      [Description("Preparation Date")]
      public Tag98A Tag98A_Date_A
      {
        get
        {
          return this.Date_A_98A;
        }
      }

      [Description("Preparation Date and Time")]
      public Tag98C DateTime_A_98C
      {
        get
        {
          return new Tag98C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U008B);
        }
      }

      [Description("Preparation Date and Time")]
      public Tag98C Tag98C_DateTime_A
      {
        get
        {
          return this.DateTime_A_98C;
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E DateTime_A_98E
      {
        get
        {
          return new Tag98E((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0090);
        }
      }

      [Description("Trade Date/Time")]
      public Tag98E Tag98E_DateTime_A
      {
        get
        {
          return this.DateTime_A_98E;
        }
      }

      [Description("Agreement Indicator")]
      public Tag22F Indicator_A_22F
      {
        get
        {
          return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U009B);
        }
      }

      [Description("Agreement Indicator")]
      public Tag22F Tag22F_Indicator_A
      {
        get
        {
          return this.Indicator_A_22F;
        }
      }

      [Description("Exposure Type Indicator")]
      public Tag22H Indicator_A_22H
      {
        get
        {
          return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U009F);
        }
      }

      [Description("Exposure Type Indicator")]
      public Tag22H Tag22H_Indicator_A
      {
        get
        {
          return this.Indicator_A_22H;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_A_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0004U0002);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_A
      {
        get
        {
          return this.Party_A_95P;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_A_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0007U0002);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_A
      {
        get
        {
          return this.Party_A_95Q;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_A_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U000FU0002);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_A
      {
        get
        {
          return this.Party_A_95R;
        }
      }

      [Description("Party Contact Narrative")]
      public Tag70C Narrative_A_70C
      {
        get
        {
          return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0013U0002);
        }
      }

      [Description("Party Contact Narrative")]
      public Tag70C Tag70C_Narrative_A
      {
        get
        {
          return this.Narrative_A_70C;
        }
      }

      [Description("Linkages")]
      public MT506.SequenceAClass.SequenceA2Class[] SequenceA2
      {
        get
        {
          int index = -1;
          List<MT506.SequenceAClass.SequenceA2Class> list = new List<MT506.SequenceAClass.SequenceA2Class>();
          int count;
          do
          {
            ++index;
            MT506.SequenceAClass.SequenceA2Class sequenceA2Class = new MT506.SequenceAClass.SequenceA2Class((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement) sequenceA2Class).Count;
            if (count > 0)
              list.Add(sequenceA2Class);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_A_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0086U0002);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_A
      {
        get
        {
          return this.EndOfBlock_A_16S;
        }
      }

      internal SequenceAClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag20C AddReference_A_20C()
      {
        return new Tag20C((SwiftElement) this, this.Reference_A_20C.Length, (SwiftDefinitionElement) MT506.U0008)
        {
          Value = string.Empty
        };
      }

      public void RemoveReference_A_20C(Tag20C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT506.SequenceAClass.SequenceA1Class AddSequenceA1()
      {
        return new MT506.SequenceAClass.SequenceA1Class((SwiftElement) this, this.SequenceA1.Length, true);
      }

      public void RemoveSequenceA1(MT506.SequenceAClass.SequenceA1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public Tag95P AddParty_A_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_A_95P.Length, (SwiftDefinitionElement) MT506.U0004U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_A_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_A_95Q.Length, (SwiftDefinitionElement) MT506.U0007U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_A_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_A_95R.Length, (SwiftDefinitionElement) MT506.U000FU0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_A_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT506.SequenceAClass.SequenceA2Class AddSequenceA2()
      {
        return new MT506.SequenceAClass.SequenceA2Class((SwiftElement) this, this.SequenceA2.Length, true);
      }

      public void RemoveSequenceA2(MT506.SequenceAClass.SequenceA2Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceA1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0014;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_A1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0015);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_A1
        {
          get
          {
            return this.StartOfBlock_A1_16R;
          }
        }

        [Description("Agreement Indicator")]
        public Tag22F Indicator_A1_22F
        {
          get
          {
            return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0017);
          }
        }

        [Description("Agreement Indicator")]
        public Tag22F Tag22F_Indicator_A1
        {
          get
          {
            return this.Indicator_A1_22F;
          }
        }

        [Description("Agreement Date")]
        public Tag98A Date_A1_98A
        {
          get
          {
            return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001B);
          }
        }

        [Description("Agreement Date")]
        public Tag98A Tag98A_Date_A1
        {
          get
          {
            return this.Date_A1_98A;
          }
        }

        [Description("Agreement Version Number")]
        public Tag13B Number_A1_13B
        {
          get
          {
            return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001E);
          }
        }

        [Description("Agreement Version Number")]
        public Tag13B Tag13B_Number_A1
        {
          get
          {
            return this.Number_A1_13B;
          }
        }

        [Description("Agreement Narrative")]
        public Tag70C Narrative_A1_70C
        {
          get
          {
            return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0081);
          }
        }

        [Description("Agreement Narrative")]
        public Tag70C Tag70C_Narrative_A1
        {
          get
          {
            return this.Narrative_A1_70C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_A1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0084);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_A1
        {
          get
          {
            return this.EndOfBlock_A1_16S;
          }
        }

        internal SequenceA1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class SequenceA2Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0016U0002;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_A2_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0017U0002);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_A2
        {
          get
          {
            return this.StartOfBlock_A2_16R;
          }
        }

        [Description("Linked Message")]
        public Tag13A NumberIdentification_A2_13A
        {
          get
          {
            return new Tag13A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001AU0002);
          }
        }

        [Description("Linked Message")]
        public Tag13A Tag13A_NumberIdentification_A2
        {
          get
          {
            return this.NumberIdentification_A2_13A;
          }
        }

        [Description("Linked Message")]
        public Tag13B NumberIdentification_A2_13B
        {
          get
          {
            return new Tag13B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001DU0002);
          }
        }

        [Description("Linked Message")]
        public Tag13B Tag13B_NumberIdentification_A2
        {
          get
          {
            return this.NumberIdentification_A2_13B;
          }
        }

        [Description("Reference")]
        public Tag20C Reference_A2_20C
        {
          get
          {
            return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0080U0002);
          }
        }

        [Description("Reference")]
        public Tag20C Tag20C_Reference_A2
        {
          get
          {
            return this.Reference_A2_20C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_A2_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0083U0002);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_A2
        {
          get
          {
            return this.EndOfBlock_A2_16S;
          }
        }

        internal SequenceA2Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }
    }

    public class SequenceBClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT506.U0088U0002;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_B_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0089U0002);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_B
      {
        get
        {
          return this.StartOfBlock_B_16R;
        }
      }

      [Description("Exposed Party")]
      public Tag95P Party_B_95P
      {
        get
        {
          return new Tag95P((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U008CU0002);
        }
      }

      [Description("Exposed Party")]
      public Tag95P Tag95P_Party_B
      {
        get
        {
          return this.Party_B_95P;
        }
      }

      [Description("Exposed Party")]
      public Tag95Q Party_B_95Q
      {
        get
        {
          return new Tag95Q((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U008FU0002);
        }
      }

      [Description("Exposed Party")]
      public Tag95Q Tag95Q_Party_B
      {
        get
        {
          return this.Party_B_95Q;
        }
      }

      [Description("Exposed Party")]
      public Tag95R Party_B_95R
      {
        get
        {
          return new Tag95R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0092U0002);
        }
      }

      [Description("Exposed Party")]
      public Tag95R Tag95R_Party_B
      {
        get
        {
          return this.Party_B_95R;
        }
      }

      [Description("Amount")]
      public Tag19B[] Amount_B_19B
      {
        get
        {
          int index = -1;
          List<Tag19B> list = new List<Tag19B>();
          int count;
          do
          {
            ++index;
            Tag19B tag19B = new Tag19B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0096U0002);
            count = this.ListTags((SwiftElement) tag19B).Count;
            if (count > 0)
              list.Add(tag19B);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Amount")]
      public Tag19B[] Tag19B_Amount_B
      {
        get
        {
          return this.Amount_B_19B;
        }
      }

      [Description("Preparation Date")]
      public Tag98A[] Date_B_98A
      {
        get
        {
          int index = -1;
          List<Tag98A> list = new List<Tag98A>();
          int count;
          do
          {
            ++index;
            Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U009CU0002);
            count = this.ListTags((SwiftElement) tag98A).Count;
            if (count > 0)
              list.Add(tag98A);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Preparation Date")]
      public Tag98A[] Tag98A_Date_B
      {
        get
        {
          return this.Date_B_98A;
        }
      }

      [Description("Preparation Date and Time")]
      public Tag98C[] DateTime_B_98C
      {
        get
        {
          int index = -1;
          List<Tag98C> list = new List<Tag98C>();
          int count;
          do
          {
            ++index;
            Tag98C tag98C = new Tag98C((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U009FU0002);
            count = this.ListTags((SwiftElement) tag98C).Count;
            if (count > 0)
              list.Add(tag98C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Preparation Date and Time")]
      public Tag98C[] Tag98C_DateTime_B
      {
        get
        {
          return this.DateTime_B_98C;
        }
      }

      [Description("Summary Details")]
      public MT506.SequenceBClass.SequenceB1Class SequenceB1
      {
        get
        {
          MT506.SequenceBClass.SequenceB1Class sequenceB1Class = new MT506.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceB1Class).Count > 0)
            return sequenceB1Class;
          else
            return (MT506.SequenceBClass.SequenceB1Class) null;
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_B_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0014U0003);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_B
      {
        get
        {
          return this.EndOfBlock_B_16S;
        }
      }

      internal SequenceBClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag19B AddAmount_B_19B()
      {
        return new Tag19B((SwiftElement) this, this.Amount_B_19B.Length, (SwiftDefinitionElement) MT506.U0096U0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveAmount_B_19B(Tag19B tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag98A AddDate_B_98A()
      {
        return new Tag98A((SwiftElement) this, this.Date_B_98A.Length, (SwiftDefinitionElement) MT506.U009CU0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveDate_B_98A(Tag98A tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag98C AddDateTime_B_98C()
      {
        return new Tag98C((SwiftElement) this, this.DateTime_B_98C.Length, (SwiftDefinitionElement) MT506.U009FU0002)
        {
          Value = string.Empty
        };
      }

      public void RemoveDateTime_B_98C(Tag98C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT506.SequenceBClass.SequenceB1Class AddSequenceB1()
      {
        return this.SequenceB1 ?? new MT506.SequenceBClass.SequenceB1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceB1(MT506.SequenceBClass.SequenceB1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceB1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0005U0003;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_B1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0006U0003);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_B1
        {
          get
          {
            return this.StartOfBlock_B1_16R;
          }
        }

        [Description("Amount")]
        public Tag19B[] Amount_B1_19B
        {
          get
          {
            int index = -1;
            List<Tag19B> list = new List<Tag19B>();
            int count;
            do
            {
              ++index;
              Tag19B tag19B = new Tag19B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0008U0003);
              count = this.ListTags((SwiftElement) tag19B).Count;
              if (count > 0)
                list.Add(tag19B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Amount")]
        public Tag19B[] Tag19B_Amount_B1
        {
          get
          {
            return this.Amount_B1_19B;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_B1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0012U0003);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_B1
        {
          get
          {
            return this.EndOfBlock_B1_16S;
          }
        }

        internal SequenceB1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public Tag19B AddAmount_B1_19B()
        {
          return new Tag19B((SwiftElement) this, this.Amount_B1_19B.Length, (SwiftDefinitionElement) MT506.U0008U0003)
          {
            Value = string.Empty
          };
        }

        public void RemoveAmount_B1_19B(Tag19B tag)
        {
          this.RemoveTag(tag.GetTag());
        }
      }
    }

    public class SequenceCClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT506.U0016U0003;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_C_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0017U0003);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_C
      {
        get
        {
          return this.StartOfBlock_C_16R;
        }
      }

      [Description("Reference")]
      public Tag20C[] Reference_C_20C
      {
        get
        {
          int index = -1;
          List<Tag20C> list = new List<Tag20C>();
          int count;
          do
          {
            ++index;
            Tag20C tag20C = new Tag20C((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0019U0003);
            count = this.ListTags((SwiftElement) tag20C).Count;
            if (count > 0)
              list.Add(tag20C);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Reference")]
      public Tag20C[] Tag20C_Reference_C
      {
        get
        {
          return this.Reference_C_20C;
        }
      }

      [Description("Agreement Indicator")]
      public Tag22F Indicator_C_1_22F
      {
        get
        {
          return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001DU0003);
        }
      }

      [Description("Agreement Indicator")]
      public Tag22F Tag22F_Indicator_C_1
      {
        get
        {
          return this.Indicator_C_1_22F;
        }
      }

      [Description("Exposure Type Indicator")]
      public Tag22H Indicator_C_22H
      {
        get
        {
          return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0080U0003);
        }
      }

      [Description("Exposure Type Indicator")]
      public Tag22H Tag22H_Indicator_C
      {
        get
        {
          return this.Indicator_C_22H;
        }
      }

      [Description("Trade Date")]
      public Tag98A Date_C_98A
      {
        get
        {
          return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0083U0003);
        }
      }

      [Description("Trade Date")]
      public Tag98A Tag98A_Date_C
      {
        get
        {
          return this.Date_C_98A;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_C_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0088U0003);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_C
      {
        get
        {
          return this.Party_C_95P;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_C_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U008BU0003);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_C
      {
        get
        {
          return this.Party_C_95Q;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_C_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U008EU0003);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_C
      {
        get
        {
          return this.Party_C_95R;
        }
      }

      [Description("Amount")]
      public Tag19A[] Amount_C_19A
      {
        get
        {
          int index = -1;
          List<Tag19A> list = new List<Tag19A>();
          int count;
          do
          {
            ++index;
            Tag19A tag19A = new Tag19A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0092U0003);
            count = this.ListTags((SwiftElement) tag19A).Count;
            if (count > 0)
              list.Add(tag19A);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Amount")]
      public Tag19A[] Tag19A_Amount_C
      {
        get
        {
          return this.Amount_C_19A;
        }
      }

      [Description("Number Of Days Accrued")]
      public Tag99A NumberCount_C_99A
      {
        get
        {
          return new Tag99A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0095U0003);
        }
      }

      [Description("Number Of Days Accrued")]
      public Tag99A Tag99A_NumberCount_C
      {
        get
        {
          return this.NumberCount_C_99A;
        }
      }

      [Description("Method Of Interest Computation Indicator")]
      public Tag22F Indicator_C_22F
      {
        get
        {
          return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0098U0003);
        }
      }

      [Description("Method Of Interest Computation Indicator")]
      public Tag22F Tag22F_Indicator_C
      {
        get
        {
          return this.Indicator_C_22F;
        }
      }

      [Description("Rate")]
      public Tag92A[] Rate_C_92A
      {
        get
        {
          int index = -1;
          List<Tag92A> list = new List<Tag92A>();
          int count;
          do
          {
            ++index;
            Tag92A tag92A = new Tag92A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U009DU0003);
            count = this.ListTags((SwiftElement) tag92A).Count;
            if (count > 0)
              list.Add(tag92A);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Rate")]
      public Tag92A[] Tag92A_Rate_C
      {
        get
        {
          return this.Rate_C_92A;
        }
      }

      [Description("Rate")]
      public Tag92B[] Rate_C_92B
      {
        get
        {
          int index = -1;
          List<Tag92B> list = new List<Tag92B>();
          int count;
          do
          {
            ++index;
            Tag92B tag92B = new Tag92B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0001U0004);
            count = this.ListTags((SwiftElement) tag92B).Count;
            if (count > 0)
              list.Add(tag92B);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Rate")]
      public Tag92B[] Tag92B_Rate_C
      {
        get
        {
          return this.Rate_C_92B;
        }
      }

      [Description("Reason Narrative")]
      public Tag70D[] Narrative_C_70D
      {
        get
        {
          int index = -1;
          List<Tag70D> list = new List<Tag70D>();
          int count;
          do
          {
            ++index;
            Tag70D tag70D = new Tag70D((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0007U0004);
            count = this.ListTags((SwiftElement) tag70D).Count;
            if (count > 0)
              list.Add(tag70D);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Reason Narrative")]
      public Tag70D[] Tag70D_Narrative_C
      {
        get
        {
          return this.Narrative_C_70D;
        }
      }

      [Description("Securities Valuation Details")]
      public MT506.SequenceCClass.SequenceC1Class SequenceC1
      {
        get
        {
          MT506.SequenceCClass.SequenceC1Class sequenceC1Class = new MT506.SequenceCClass.SequenceC1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceC1Class).Count > 0)
            return sequenceC1Class;
          else
            return (MT506.SequenceCClass.SequenceC1Class) null;
        }
      }

      [Description("Treasury Valuation Details")]
      public MT506.SequenceCClass.SequenceC2Class SequenceC2
      {
        get
        {
          MT506.SequenceCClass.SequenceC2Class sequenceC2Class = new MT506.SequenceCClass.SequenceC2Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceC2Class).Count > 0)
            return sequenceC2Class;
          else
            return (MT506.SequenceCClass.SequenceC2Class) null;
        }
      }

      [Description("Repo Valuation Details")]
      public MT506.SequenceCClass.SequenceC3Class SequenceC3
      {
        get
        {
          MT506.SequenceCClass.SequenceC3Class sequenceC3Class = new MT506.SequenceCClass.SequenceC3Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceC3Class).Count > 0)
            return sequenceC3Class;
          else
            return (MT506.SequenceCClass.SequenceC3Class) null;
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_C_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001CU0005);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_C
      {
        get
        {
          return this.EndOfBlock_C_16S;
        }
      }

      internal SequenceCClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag20C AddReference_C_20C()
      {
        return new Tag20C((SwiftElement) this, this.Reference_C_20C.Length, (SwiftDefinitionElement) MT506.U0019U0003)
        {
          Value = string.Empty
        };
      }

      public void RemoveReference_C_20C(Tag20C tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95P AddParty_C_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_C_95P.Length, (SwiftDefinitionElement) MT506.U0088U0003)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_C_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_C_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_C_95Q.Length, (SwiftDefinitionElement) MT506.U008BU0003)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_C_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_C_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_C_95R.Length, (SwiftDefinitionElement) MT506.U008EU0003)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_C_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag19A AddAmount_C_19A()
      {
        return new Tag19A((SwiftElement) this, this.Amount_C_19A.Length, (SwiftDefinitionElement) MT506.U0092U0003)
        {
          Value = string.Empty
        };
      }

      public void RemoveAmount_C_19A(Tag19A tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag92A AddRate_C_92A()
      {
        return new Tag92A((SwiftElement) this, this.Rate_C_92A.Length, (SwiftDefinitionElement) MT506.U009DU0003)
        {
          Value = string.Empty
        };
      }

      public void RemoveRate_C_92A(Tag92A tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag92B AddRate_C_92B()
      {
        return new Tag92B((SwiftElement) this, this.Rate_C_92B.Length, (SwiftDefinitionElement) MT506.U0001U0004)
        {
          Value = string.Empty
        };
      }

      public void RemoveRate_C_92B(Tag92B tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag70D AddNarrative_C_70D()
      {
        return new Tag70D((SwiftElement) this, this.Narrative_C_70D.Length, (SwiftDefinitionElement) MT506.U0007U0004)
        {
          Value = string.Empty
        };
      }

      public void RemoveNarrative_C_70D(Tag70D tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT506.SequenceCClass.SequenceC1Class AddSequenceC1()
      {
        return this.SequenceC1 ?? new MT506.SequenceCClass.SequenceC1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceC1(MT506.SequenceCClass.SequenceC1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT506.SequenceCClass.SequenceC2Class AddSequenceC2()
      {
        return this.SequenceC2 ?? new MT506.SequenceCClass.SequenceC2Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceC2(MT506.SequenceCClass.SequenceC2Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT506.SequenceCClass.SequenceC3Class AddSequenceC3()
      {
        return this.SequenceC3 ?? new MT506.SequenceCClass.SequenceC3Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceC3(MT506.SequenceCClass.SequenceC3Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceC1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U000FU0004;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_C1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0010U0004);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_C1
        {
          get
          {
            return this.StartOfBlock_C1_16R;
          }
        }

        [Description("Market Price Amount")]
        public Tag19B Amount_C1_19B
        {
          get
          {
            return new Tag19B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0012U0004);
          }
        }

        [Description("Market Price Amount")]
        public Tag19B Tag19B_Amount_C1
        {
          get
          {
            return this.Amount_C1_19B;
          }
        }

        [Description("Identification Of Financial Instrument")]
        public Tag35B IdentificationOfFinancialInstrument_C1_35B
        {
          get
          {
            return new Tag35B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0017U0004);
          }
        }

        [Description("Identification Of Financial Instrument")]
        public Tag35B Tag35B_IdentificationOfFinancialInstrument_C1
        {
          get
          {
            return this.IdentificationOfFinancialInstrument_C1_35B;
          }
        }

        [Description("Quantity Of Securities Valued")]
        public Tag36B QuantityOfFinancialInstrument_C1_36B
        {
          get
          {
            return new Tag36B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001BU0004);
          }
        }

        [Description("Quantity Of Securities Valued")]
        public Tag36B Tag36B_QuantityOfFinancialInstrument_C1
        {
          get
          {
            return this.QuantityOfFinancialInstrument_C1_36B;
          }
        }

        [Description("Securities Haircut")]
        public Tag92A Rate_C1_92A
        {
          get
          {
            return new Tag92A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U007FU0004);
          }
        }

        [Description("Securities Haircut")]
        public Tag92A Tag92A_Rate_C1
        {
          get
          {
            return this.Rate_C1_92A;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_C1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0082U0004);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_C1
        {
          get
          {
            return this.EndOfBlock_C1_16S;
          }
        }

        internal SequenceC1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class SequenceC2Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0084U0004;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_C2_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0086U0004);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_C2
        {
          get
          {
            return this.StartOfBlock_C2_16R;
          }
        }

        [Description("Date")]
        public Tag98A[] Date_C2_98A
        {
          get
          {
            int index = -1;
            List<Tag98A> list = new List<Tag98A>();
            int count;
            do
            {
              ++index;
              Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0088U0004);
              count = this.ListTags((SwiftElement) tag98A).Count;
              if (count > 0)
                list.Add(tag98A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Date")]
        public Tag98A[] Tag98A_Date_C2
        {
          get
          {
            return this.Date_C2_98A;
          }
        }

        [Description("Amount")]
        public Tag19B[] Amount_C2_19B
        {
          get
          {
            int index = -1;
            List<Tag19B> list = new List<Tag19B>();
            int count;
            do
            {
              ++index;
              Tag19B tag19B = new Tag19B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U008BU0004);
              count = this.ListTags((SwiftElement) tag19B).Count;
              if (count > 0)
                list.Add(tag19B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Amount")]
        public Tag19B[] Tag19B_Amount_C2
        {
          get
          {
            return this.Amount_C2_19B;
          }
        }

        [Description("Commodity Index Narrative")]
        public Tag70C Narrative_C2_70C
        {
          get
          {
            return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0090U0004);
          }
        }

        [Description("Commodity Index Narrative")]
        public Tag70C Tag70C_Narrative_C2
        {
          get
          {
            return this.Narrative_C2_70C;
          }
        }

        [Description("Option Type")]
        public MT506.SequenceCClass.SequenceC2Class.Tag12B TypeOfFinancialInstrument_C2_12B
        {
          get
          {
            return new MT506.SequenceCClass.SequenceC2Class.Tag12B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0093U0004);
          }
        }

        [Description("Option Type")]
        public MT506.SequenceCClass.SequenceC2Class.Tag12B Tag12B_TypeOfFinancialInstrument_C2
        {
          get
          {
            return this.TypeOfFinancialInstrument_C2_12B;
          }
        }

        [Description("Price")]
        public Tag90A[] Price_C2_90A
        {
          get
          {
            int index = -1;
            List<Tag90A> list = new List<Tag90A>();
            int count;
            do
            {
              ++index;
              Tag90A tag90A = new Tag90A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0098U0004);
              count = this.ListTags((SwiftElement) tag90A).Count;
              if (count > 0)
                list.Add(tag90A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Price")]
        public Tag90A[] Tag90A_Price_C2
        {
          get
          {
            return this.Price_C2_90A;
          }
        }

        [Description("Deal Price")]
        public Tag90B[] Price_C2_90B
        {
          get
          {
            int index = -1;
            List<Tag90B> list = new List<Tag90B>();
            int count;
            do
            {
              ++index;
              Tag90B tag90B = new Tag90B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U009DU0004);
              count = this.ListTags((SwiftElement) tag90B).Count;
              if (count > 0)
                list.Add(tag90B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Deal Price")]
        public Tag90B[] Tag90B_Price_C2
        {
          get
          {
            return this.Price_C2_90B;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_C2_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0005U0005);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_C2
        {
          get
          {
            return this.EndOfBlock_C2_16S;
          }
        }

        internal SequenceC2Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public Tag98A AddDate_C2_98A()
        {
          return new Tag98A((SwiftElement) this, this.Date_C2_98A.Length, (SwiftDefinitionElement) MT506.U0088U0004)
          {
            Value = string.Empty
          };
        }

        public void RemoveDate_C2_98A(Tag98A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag19B AddAmount_C2_19B()
        {
          return new Tag19B((SwiftElement) this, this.Amount_C2_19B.Length, (SwiftDefinitionElement) MT506.U008BU0004)
          {
            Value = string.Empty
          };
        }

        public void RemoveAmount_C2_19B(Tag19B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag90A AddPrice_C2_90A()
        {
          return new Tag90A((SwiftElement) this, this.Price_C2_90A.Length, (SwiftDefinitionElement) MT506.U0098U0004)
          {
            Value = string.Empty
          };
        }

        public void RemovePrice_C2_90A(Tag90A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag90B AddPrice_C2_90B()
        {
          return new Tag90B((SwiftElement) this, this.Price_C2_90B.Length, (SwiftDefinitionElement) MT506.U009DU0004)
          {
            Value = string.Empty
          };
        }

        public void RemovePrice_C2_90B(Tag90B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public class Tag12B : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("12B", value);
            }
          }

          internal Tag12B(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }
      }

      public class SequenceC3Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0007U0005;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_C3_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0008U0005);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_C3
        {
          get
          {
            return this.StartOfBlock_C3_16R;
          }
        }

        [Description("Date")]
        public Tag98A[] Date_C3_98A
        {
          get
          {
            int index = -1;
            List<Tag98A> list = new List<Tag98A>();
            int count;
            do
            {
              ++index;
              Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U000FU0005);
              count = this.ListTags((SwiftElement) tag98A).Count;
              if (count > 0)
                list.Add(tag98A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Date")]
        public Tag98A[] Tag98A_Date_C3
        {
          get
          {
            return this.Date_C3_98A;
          }
        }

        [Description("Amount")]
        public Tag19B[] Amount_C3_19B
        {
          get
          {
            int index = -1;
            List<Tag19B> list = new List<Tag19B>();
            int count;
            do
            {
              ++index;
              Tag19B tag19B = new Tag19B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0012U0005);
              count = this.ListTags((SwiftElement) tag19B).Count;
              if (count > 0)
                list.Add(tag19B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Amount")]
        public Tag19B[] Tag19B_Amount_C3
        {
          get
          {
            return this.Amount_C3_19B;
          }
        }

        [Description("Repurchase Rate")]
        public Tag92A Rate_C3_92A
        {
          get
          {
            return new Tag92A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0017U0005);
          }
        }

        [Description("Repurchase Rate")]
        public Tag92A Tag92A_Rate_C3
        {
          get
          {
            return this.Rate_C3_92A;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_C3_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001AU0005);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_C3
        {
          get
          {
            return this.EndOfBlock_C3_16S;
          }
        }

        internal SequenceC3Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public Tag98A AddDate_C3_98A()
        {
          return new Tag98A((SwiftElement) this, this.Date_C3_98A.Length, (SwiftDefinitionElement) MT506.U000FU0005)
          {
            Value = string.Empty
          };
        }

        public void RemoveDate_C3_98A(Tag98A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag19B AddAmount_C3_19B()
        {
          return new Tag19B((SwiftElement) this, this.Amount_C3_19B.Length, (SwiftDefinitionElement) MT506.U0012U0005)
          {
            Value = string.Empty
          };
        }

        public void RemoveAmount_C3_19B(Tag19B tag)
        {
          this.RemoveTag(tag.GetTag());
        }
      }
    }

    public class SequenceDClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT506.U001EU0005;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_D_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001FU0005);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_D
      {
        get
        {
          return this.StartOfBlock_D_16R;
        }
      }

      [Description("Collateral Reference")]
      public Tag20C Reference_D_20C
      {
        get
        {
          return new Tag20C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0080U0005);
        }
      }

      [Description("Collateral Reference")]
      public Tag20C Tag20C_Reference_D
      {
        get
        {
          return this.Reference_D_20C;
        }
      }

      [Description("Collateral Type Indicator")]
      public Tag22H Indicator_D_22H
      {
        get
        {
          return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0083U0005);
        }
      }

      [Description("Collateral Type Indicator")]
      public Tag22H Tag22H_Indicator_D
      {
        get
        {
          return this.Indicator_D_22H;
        }
      }

      [Description("Settlement Status")]
      public Tag25D Status_D_25D
      {
        get
        {
          return new Tag25D((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0087U0005);
        }
      }

      [Description("Settlement Status")]
      public Tag25D Tag25D_Status_D
      {
        get
        {
          return this.Status_D_25D;
        }
      }

      [Description("Amount")]
      public Tag19B[] Amount_D_19B
      {
        get
        {
          int index = -1;
          List<Tag19B> list = new List<Tag19B>();
          int count;
          do
          {
            ++index;
            Tag19B tag19B = new Tag19B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U008BU0005);
            count = this.ListTags((SwiftElement) tag19B).Count;
            if (count > 0)
              list.Add(tag19B);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Amount")]
      public Tag19B[] Tag19B_Amount_D
      {
        get
        {
          return this.Amount_D_19B;
        }
      }

      [Description("Number Of Days Accrued")]
      public Tag99A NumberCount_D_99A
      {
        get
        {
          return new Tag99A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0090U0005);
        }
      }

      [Description("Number Of Days Accrued")]
      public Tag99A Tag99A_NumberCount_D
      {
        get
        {
          return this.NumberCount_D_99A;
        }
      }

      [Description("Method Of Interest Computation Indicator")]
      public Tag22F Indicator_D_22F
      {
        get
        {
          return new Tag22F((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0093U0005);
        }
      }

      [Description("Method Of Interest Computation Indicator")]
      public Tag22F Tag22F_Indicator_D
      {
        get
        {
          return this.Indicator_D_22F;
        }
      }

      [Description("Rate")]
      public Tag92A[] Rate_D_92A
      {
        get
        {
          int index = -1;
          List<Tag92A> list = new List<Tag92A>();
          int count;
          do
          {
            ++index;
            Tag92A tag92A = new Tag92A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0098U0005);
            count = this.ListTags((SwiftElement) tag92A).Count;
            if (count > 0)
              list.Add(tag92A);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Rate")]
      public Tag92A[] Tag92A_Rate_D
      {
        get
        {
          return this.Rate_D_92A;
        }
      }

      [Description("Rate")]
      public Tag92B[] Rate_D_92B
      {
        get
        {
          int index = -1;
          List<Tag92B> list = new List<Tag92B>();
          int count;
          do
          {
            ++index;
            Tag92B tag92B = new Tag92B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U009BU0005);
            count = this.ListTags((SwiftElement) tag92B).Count;
            if (count > 0)
              list.Add(tag92B);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Rate")]
      public Tag92B[] Tag92B_Rate_D
      {
        get
        {
          return this.Rate_D_92B;
        }
      }

      [Description("Securities Collateral Details")]
      public MT506.SequenceDClass.SequenceD1Class SequenceD1
      {
        get
        {
          MT506.SequenceDClass.SequenceD1Class sequenceD1Class = new MT506.SequenceDClass.SequenceD1Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceD1Class).Count > 0)
            return sequenceD1Class;
          else
            return (MT506.SequenceDClass.SequenceD1Class) null;
        }
      }

      [Description("Cash Collateral Details")]
      public MT506.SequenceDClass.SequenceD2Class SequenceD2
      {
        get
        {
          MT506.SequenceDClass.SequenceD2Class sequenceD2Class = new MT506.SequenceDClass.SequenceD2Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceD2Class).Count > 0)
            return sequenceD2Class;
          else
            return (MT506.SequenceDClass.SequenceD2Class) null;
        }
      }

      [Description("Other Collateral Details")]
      public MT506.SequenceDClass.SequenceD3Class SequenceD3
      {
        get
        {
          MT506.SequenceDClass.SequenceD3Class sequenceD3Class = new MT506.SequenceDClass.SequenceD3Class((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) sequenceD3Class).Count > 0)
            return sequenceD3Class;
          else
            return (MT506.SequenceDClass.SequenceD3Class) null;
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_D_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001FU0007);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_D
      {
        get
        {
          return this.EndOfBlock_D_16S;
        }
      }

      internal SequenceDClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag19B AddAmount_D_19B()
      {
        return new Tag19B((SwiftElement) this, this.Amount_D_19B.Length, (SwiftDefinitionElement) MT506.U008BU0005)
        {
          Value = string.Empty
        };
      }

      public void RemoveAmount_D_19B(Tag19B tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag92A AddRate_D_92A()
      {
        return new Tag92A((SwiftElement) this, this.Rate_D_92A.Length, (SwiftDefinitionElement) MT506.U0098U0005)
        {
          Value = string.Empty
        };
      }

      public void RemoveRate_D_92A(Tag92A tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag92B AddRate_D_92B()
      {
        return new Tag92B((SwiftElement) this, this.Rate_D_92B.Length, (SwiftDefinitionElement) MT506.U009BU0005)
        {
          Value = string.Empty
        };
      }

      public void RemoveRate_D_92B(Tag92B tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public MT506.SequenceDClass.SequenceD1Class AddSequenceD1()
      {
        return this.SequenceD1 ?? new MT506.SequenceDClass.SequenceD1Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceD1(MT506.SequenceDClass.SequenceD1Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT506.SequenceDClass.SequenceD2Class AddSequenceD2()
      {
        return this.SequenceD2 ?? new MT506.SequenceDClass.SequenceD2Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceD2(MT506.SequenceDClass.SequenceD2Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT506.SequenceDClass.SequenceD3Class AddSequenceD3()
      {
        return this.SequenceD3 ?? new MT506.SequenceDClass.SequenceD3Class((SwiftElement) this, 0, true);
      }

      public void RemoveSequenceD3(MT506.SequenceDClass.SequenceD3Class sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class SequenceD1Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0002U0006;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_D1_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0003U0006);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_D1
        {
          get
          {
            return this.StartOfBlock_D1_16R;
          }
        }

        [Description("Market Price Amount")]
        public Tag19B Amount_D1_19B
        {
          get
          {
            return new Tag19B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0005U0006);
          }
        }

        [Description("Market Price Amount")]
        public Tag19B Tag19B_Amount_D1
        {
          get
          {
            return this.Amount_D1_19B;
          }
        }

        [Description("Identification Of Financial Instrument")]
        public Tag35B IdentificationOfFinancialInstrument_D1_35B
        {
          get
          {
            return new Tag35B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U000FU0006);
          }
        }

        [Description("Identification Of Financial Instrument")]
        public Tag35B Tag35B_IdentificationOfFinancialInstrument_D1
        {
          get
          {
            return this.IdentificationOfFinancialInstrument_D1_35B;
          }
        }

        [Description("Quantity Of Securities Collateral")]
        public Tag36B QuantityOfFinancialInstrument_D1_36B
        {
          get
          {
            return new Tag36B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0013U0006);
          }
        }

        [Description("Quantity Of Securities Collateral")]
        public Tag36B Tag36B_QuantityOfFinancialInstrument_D1
        {
          get
          {
            return this.QuantityOfFinancialInstrument_D1_36B;
          }
        }

        [Description("Securities Haircut")]
        public Tag92A Rate_D1_92A
        {
          get
          {
            return new Tag92A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0018U0006);
          }
        }

        [Description("Securities Haircut")]
        public Tag92A Tag92A_Rate_D1
        {
          get
          {
            return this.Rate_D1_92A;
          }
        }

        [Description("Expiry Date")]
        public Tag98A Date_D1_98A
        {
          get
          {
            return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001BU0006);
          }
        }

        [Description("Expiry Date")]
        public Tag98A Tag98A_Date_D1
        {
          get
          {
            return this.Date_D1_98A;
          }
        }

        [Description("Place")]
        public MT506.SequenceDClass.SequenceD1Class.Tag94B[] Place_D1_94B
        {
          get
          {
            int index = -1;
            List<MT506.SequenceDClass.SequenceD1Class.Tag94B> list = new List<MT506.SequenceDClass.SequenceD1Class.Tag94B>();
            int count;
            do
            {
              ++index;
              MT506.SequenceDClass.SequenceD1Class.Tag94B tag94B = new MT506.SequenceDClass.SequenceD1Class.Tag94B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U001EU0006);
              count = this.ListTags((SwiftElement) tag94B).Count;
              if (count > 0)
                list.Add(tag94B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description("Place")]
        public MT506.SequenceDClass.SequenceD1Class.Tag94B[] Tag94B_Place_D1
        {
          get
          {
            return this.Place_D1_94B;
          }
        }

        [Description("Rating Narrative")]
        public Tag70C Narrative_D1_70C
        {
          get
          {
            return new Tag70C((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0083U0006);
          }
        }

        [Description("Rating Narrative")]
        public Tag70C Tag70C_Narrative_D1
        {
          get
          {
            return this.Narrative_D1_70C;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_D1_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0087U0006);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_D1
        {
          get
          {
            return this.EndOfBlock_D1_16S;
          }
        }

        internal SequenceD1Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public MT506.SequenceDClass.SequenceD1Class.Tag94B AddPlace_D1_94B()
        {
          return new MT506.SequenceDClass.SequenceD1Class.Tag94B((SwiftElement) this, this.Place_D1_94B.Length, (SwiftDefinitionElement) MT506.U001EU0006)
          {
            Value = string.Empty
          };
        }

        public void RemovePlace_D1_94B(MT506.SequenceDClass.SequenceD1Class.Tag94B tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public class Tag94B : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("94B", value);
            }
          }

          internal Tag94B(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }
      }

      public class SequenceD2Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0089U0006;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_D2_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U008AU0006);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_D2
        {
          get
          {
            return this.StartOfBlock_D2_16R;
          }
        }

        [Description("Deposit Amount")]
        public Tag19B Amount_D2_19B
        {
          get
          {
            return new Tag19B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U008CU0006);
          }
        }

        [Description("Deposit Amount")]
        public Tag19B Tag19B_Amount_D2
        {
          get
          {
            return this.Amount_D2_19B;
          }
        }

        [Description("Type Of Deposit Indicator")]
        public Tag22H Indicator_D2_22H
        {
          get
          {
            return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0091U0006);
          }
        }

        [Description("Type Of Deposit Indicator")]
        public Tag22H Tag22H_Indicator_D2
        {
          get
          {
            return this.Indicator_D2_22H;
          }
        }

        [Description("Maturity Date")]
        public Tag98A Date_D2_98A
        {
          get
          {
            return new Tag98A((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0094U0006);
          }
        }

        [Description("Maturity Date")]
        public Tag98A Tag98A_Date_D2
        {
          get
          {
            return this.Date_D2_98A;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_D2_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0097U0006);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_D2
        {
          get
          {
            return this.EndOfBlock_D2_16S;
          }
        }

        internal SequenceD2Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class SequenceD3Class : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT506.U0099U0006;
          }
        }

        [Description("Start Of Block")]
        public Tag16R StartOfBlock_D3_16R
        {
          get
          {
            return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U009AU0006);
          }
        }

        [Description("Start Of Block")]
        public Tag16R Tag16R_StartOfBlock_D3
        {
          get
          {
            return this.StartOfBlock_D3_16R;
          }
        }

        [Description("Type Of Other Collateral Indicator")]
        public Tag22H Indicator_D3_22H
        {
          get
          {
            return new Tag22H((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U009CU0006);
          }
        }

        [Description("Type Of Other Collateral Indicator")]
        public Tag22H Tag22H_Indicator_D3
        {
          get
          {
            return this.Indicator_D3_22H;
          }
        }

        [Description(" Date")]
        public Tag98A[] Date_D3_98A
        {
          get
          {
            int index = -1;
            List<Tag98A> list = new List<Tag98A>();
            int count;
            do
            {
              ++index;
              Tag98A tag98A = new Tag98A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0001U0007);
              count = this.ListTags((SwiftElement) tag98A).Count;
              if (count > 0)
                list.Add(tag98A);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description(" Date")]
        public Tag98A[] Tag98A_Date_D3
        {
          get
          {
            return this.Date_D3_98A;
          }
        }

        [Description(" Date and Time")]
        public Tag98B[] DateTime_D3_98B
        {
          get
          {
            int index = -1;
            List<Tag98B> list = new List<Tag98B>();
            int count;
            do
            {
              ++index;
              Tag98B tag98B = new Tag98B((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0004U0007);
              count = this.ListTags((SwiftElement) tag98B).Count;
              if (count > 0)
                list.Add(tag98B);
            }
            while (count > 0);
            return list.ToArray();
          }
        }

        [Description(" Date and Time")]
        public Tag98B[] Tag98B_DateTime_D3
        {
          get
          {
            return this.DateTime_D3_98B;
          }
        }

        [Description("Issuer")]
        public Tag95P Party_D3_95P
        {
          get
          {
            return new Tag95P((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U000EU0007);
          }
        }

        [Description("Issuer")]
        public Tag95P Tag95P_Party_D3
        {
          get
          {
            return this.Party_D3_95P;
          }
        }

        [Description("Issuer")]
        public Tag95Q Party_D3_95Q
        {
          get
          {
            return new Tag95Q((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0011U0007);
          }
        }

        [Description("Issuer")]
        public Tag95Q Tag95Q_Party_D3
        {
          get
          {
            return this.Party_D3_95Q;
          }
        }

        [Description("Issuer")]
        public Tag95R Party_D3_95R
        {
          get
          {
            return new Tag95R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0014U0007);
          }
        }

        [Description("Issuer")]
        public Tag95R Tag95R_Party_D3
        {
          get
          {
            return this.Party_D3_95R;
          }
        }

        [Description("Amount")]
        public Tag19B Amount_D3_19B
        {
          get
          {
            return new Tag19B((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0018U0007);
          }
        }

        [Description("Amount")]
        public Tag19B Tag19B_Amount_D3
        {
          get
          {
            return this.Amount_D3_19B;
          }
        }

        [Description("End Of Block")]
        public Tag16S EndOfBlock_D3_16S
        {
          get
          {
            return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U001DU0007);
          }
        }

        [Description("End Of Block")]
        public Tag16S Tag16S_EndOfBlock_D3
        {
          get
          {
            return this.EndOfBlock_D3_16S;
          }
        }

        internal SequenceD3Class(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public Tag98A AddDate_D3_98A()
        {
          return new Tag98A((SwiftElement) this, this.Date_D3_98A.Length, (SwiftDefinitionElement) MT506.U0001U0007)
          {
            Value = string.Empty
          };
        }

        public void RemoveDate_D3_98A(Tag98A tag)
        {
          this.RemoveTag(tag.GetTag());
        }

        public Tag98B AddDateTime_D3_98B()
        {
          return new Tag98B((SwiftElement) this, this.DateTime_D3_98B.Length, (SwiftDefinitionElement) MT506.U0004U0007)
          {
            Value = string.Empty
          };
        }

        public void RemoveDateTime_D3_98B(Tag98B tag)
        {
          this.RemoveTag(tag.GetTag());
        }
      }
    }

    public class SequenceEClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT506.U0080U0007;
        }
      }

      [Description("Start Of Block")]
      public Tag16R StartOfBlock_E_16R
      {
        get
        {
          return new Tag16R((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0081U0007);
        }
      }

      [Description("Start Of Block")]
      public Tag16R Tag16R_StartOfBlock_E
      {
        get
        {
          return this.StartOfBlock_E_16R;
        }
      }

      [Description("Party")]
      public Tag95P[] Party_E_95P
      {
        get
        {
          int index = -1;
          List<Tag95P> list = new List<Tag95P>();
          int count;
          do
          {
            ++index;
            Tag95P tag95P = new Tag95P((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0084U0007);
            count = this.ListTags((SwiftElement) tag95P).Count;
            if (count > 0)
              list.Add(tag95P);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95P[] Tag95P_Party_E
      {
        get
        {
          return this.Party_E_95P;
        }
      }

      [Description("Party")]
      public Tag95Q[] Party_E_95Q
      {
        get
        {
          int index = -1;
          List<Tag95Q> list = new List<Tag95Q>();
          int count;
          do
          {
            ++index;
            Tag95Q tag95Q = new Tag95Q((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U0088U0007);
            count = this.ListTags((SwiftElement) tag95Q).Count;
            if (count > 0)
              list.Add(tag95Q);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95Q[] Tag95Q_Party_E
      {
        get
        {
          return this.Party_E_95Q;
        }
      }

      [Description("Party")]
      public Tag95R[] Party_E_95R
      {
        get
        {
          int index = -1;
          List<Tag95R> list = new List<Tag95R>();
          int count;
          do
          {
            ++index;
            Tag95R tag95R = new Tag95R((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U008BU0007);
            count = this.ListTags((SwiftElement) tag95R).Count;
            if (count > 0)
              list.Add(tag95R);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Party")]
      public Tag95R[] Tag95R_Party_E
      {
        get
        {
          return this.Party_E_95R;
        }
      }

      [Description("Amount")]
      public Tag19A[] Amount_E_19A
      {
        get
        {
          int index = -1;
          List<Tag19A> list = new List<Tag19A>();
          int count;
          do
          {
            ++index;
            Tag19A tag19A = new Tag19A((SwiftElement) this, index, (SwiftDefinitionElement) MT506.U008FU0007);
            count = this.ListTags((SwiftElement) tag19A).Count;
            if (count > 0)
              list.Add(tag19A);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Amount")]
      public Tag19A[] Tag19A_Amount_E
      {
        get
        {
          return this.Amount_E_19A;
        }
      }

      [Description("End Of Block")]
      public Tag16S EndOfBlock_E_16S
      {
        get
        {
          return new Tag16S((SwiftElement) this, 0, (SwiftDefinitionElement) MT506.U0092U0007);
        }
      }

      [Description("End Of Block")]
      public Tag16S Tag16S_EndOfBlock_E
      {
        get
        {
          return this.EndOfBlock_E_16S;
        }
      }

      internal SequenceEClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public Tag95P AddParty_E_95P()
      {
        return new Tag95P((SwiftElement) this, this.Party_E_95P.Length, (SwiftDefinitionElement) MT506.U0084U0007)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_E_95P(Tag95P tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95Q AddParty_E_95Q()
      {
        return new Tag95Q((SwiftElement) this, this.Party_E_95Q.Length, (SwiftDefinitionElement) MT506.U0088U0007)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_E_95Q(Tag95Q tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag95R AddParty_E_95R()
      {
        return new Tag95R((SwiftElement) this, this.Party_E_95R.Length, (SwiftDefinitionElement) MT506.U008BU0007)
        {
          Value = string.Empty
        };
      }

      public void RemoveParty_E_95R(Tag95R tag)
      {
        this.RemoveTag(tag.GetTag());
      }

      public Tag19A AddAmount_E_19A()
      {
        return new Tag19A((SwiftElement) this, this.Amount_E_19A.Length, (SwiftDefinitionElement) MT506.U008FU0007)
        {
          Value = string.Empty
        };
      }

      public void RemoveAmount_E_19A(Tag19A tag)
      {
        this.RemoveTag(tag.GetTag());
      }
    }
  }
}
